如何用c++画三角形

 我来答
育知同创教育
2016-03-21 · 百度知道合伙人官方认证企业
育知同创教育
1【专注:Python+人工智能|Java大数据|HTML5培训】 2【免费提供名师直播课堂、公开课及视频教程】 3【地址:北京市昌平区三旗百汇物美大卖场2层,微信公众号:yuzhitc】
向TA提问
展开全部
/**
*画正三角形程序
*/
#include<iostream>
using namespace std;
int main()
{
int rows;
cout<<"请输入三角形的高的行数:"<<endl;
cin>>rows; //输入三角形的高的行数
int s=10;
int MaxStart=rows*2-1; //计算出这么高的三角型的最底层的星星数.
for(int i=0;i<rows;i++) //画行.
{
s = 1; //控制空格的数量,当s=0后,不再输出空格.
for(int j=0;j<MaxStart;j++) //画列
{
if(j==((MaxStart+1)/2-i)) //第一行开始的星星是在第(MaxStart+1)/2的位置,下一行比上一行前一位,所以-i;
{
for(int k=0;k<((2*i)+1);k++) //计算该行的星星的个数;
{
cout<<"*";
s = 0;
}
}
if(s == 1) //当s=0后,不再输出空格.
cout<<" ";
}
cout<<endl;
}
system("pause");
return 0;
}
御姐萝莉LOL
2016-03-21 · TA获得超过1.8万个赞
知道大有可为答主
回答量:1.3万
采纳率:82%
帮助的人:1324万
展开全部
这个题的关键,是判断一个点,落在三角形以内,还是落在三角形以外。
下面调用手头现成的判断一个点,落在凸多边形以内,还是落在凸多边形以外的程序。
int pnpoly(int npol, float *xp, float *yp, float x, float y);
程序步骤:
输入三角形 三个顶点点坐标 xi,yi, 逆时针次序 (保证 叉乘积 为正,为三角形内)
输入填充点的间距 dx,dy
计算 Bounding Box
在 Bounding Box 范围内 找点,落在三角形以内的 调用 你给的drawpoint(int x,int y,int color)
==========================================
#include <stdio.h>
#include <math.h>
int pnpoly(int npol, float *xp, float *yp, float x, float y)
{
int i, j, c = 0;
for (i = 0, j = npol-1; i < npol; j = i++) {
if ((((yp[i]<=y) && (y<yp[j])) ||
((yp[j]<=y) && (y<yp[i]))) &&
(x < (xp[j] - xp[i]) * (y - yp[i]) / (yp[j] - yp[i]) + xp[i]))
c = !c;
}
return c;
}

int main()
{
float xp[3], yp[3];
float x_max,x_min,y_max,y_min;
float dx,dy;
int i,j;
float x,y;
int color = 5;
for (i=1;i<=3;i++)
{
printf("input x%d y%d:\n",i,i);
scanf("%f %f",&xp[i-1],&yp[i-1]);
};
x_max = xp[0]; x_min = xp[0];
y_max = yp[0]; y_min = yp[0];
for (i=1;i<3;i++){
if (xp[i] > x_max ) x_max = xp[i];
if (xp[i] < x_min ) x_min = xp[i];
if (yp[i] > y_max ) y_max = yp[i];
if (yp[i] < y_min ) y_min = yp[i];
}
printf("input dx dy\n");
scanf("%f %f",&dx,&dy);
for (y=y_min; y<=y_max;y=y+dy) {
for (x=x_min;x<=x_max;x=x+dx) {
if ( pnpoly(3, &xp[0], &yp[0], x, y) == 1)
drawpoint( (int) x, (int) y, color );
// printf("%f %f\n",x,y);
}
}
return 0;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
a452953977
2016-03-20 · TA获得超过5.6万个赞
知道大有可为答主
回答量:3687
采纳率:77%
帮助的人:410万
展开全部

更多追问追答
追问
如果一定要用polygon函数呢
追答

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式