作业帮 > 综合 > 作业

如何给三角形填充颜色?

来源:学生作业帮 编辑:作业帮 分类:综合作业 时间:2024/05/15 08:53:14
如何给三角形填充颜色?
用c是最好了.最好要附解释,不然我不晓得那个意思.我只会为矩形填充,三角形就不会了.
#include "graphics.h"
int main()
{int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"c:\\tc200");
setbkcolor(1);
line(200,420,406,160);
line(200,420,150,300);
line(150,300,406,160);
getch();
closegraph();
return 0;}这是我话三角形的代码,要如何填充它,怎么补充?
已编译通过.给出两种方法:
方法一:
#include "graphics.h"
#include
#include
int main()
{
int gdriver=DETECT,gmode;
initgraph(&gdriver,&gmode,"c:\\tc200");
setbkcolor(1);
setlinestyle(0,0,WHITE);/* 设置了画线的线型和线型颜色(白色) */
setfillstyle(SOLID_FILL,RED);/* 设置填充为实心填充且填充色为红色,颜色可改动,但必须大写 */
line(200,420,406,160);
line(200,420,150,300);
line(150,300,406,160);
floodfill((200+406+150)/3,(420+160+300)/3,WHITE);/* 这里的白色即要被填充的图形边界的颜色,即三角形边界也就是边的颜色和上面线型的颜色必须一样 */
/* (200+406+150)/3,(420+160+300)/3是三角形重心坐标,利用三角形的重心必在三角形内的特点,从这一点开始向外填充直到达到三角形的边界为止,注意这一点必须为被填充的图形内的某一点 */
getch();
closegraph();
return 0;
}
方法二
#include "graphics.h"
#include
#include
int main()
{
int gdriver=DETECT,gmode;
int poly[6];/* 由于三角形有3个顶点,每个顶点有x,y两个坐标,故为6 */
initgraph(&gdriver,&gmode,"c:\\tc200");
setbkcolor(1);
poly[0]=200; /* poly[0]和poly[1]表示了第一个点的坐标 */
poly[1]=420;
poly[2]=406; /* poly[2]和poly[3]表示了第二个点的坐标 */
poly[3]=160;
poly[4]=150; /* poly[4]和poly[5]表示了第三个点的坐标,当多边形定点超过3个时,应该依次按连接顺序赋值 */
poly[5]=300;
setlinestyle(0,0,WHITE);/* 设置了画线的线型和线型颜色(白色) */
setfillstyle(SOLID_FILL,RED);/* 设置填充为实心填充且填充色为红色,颜色可改动,但必须大写 */
fillpoly(3,poly);/* 画出并填充多边形,这里是三角形,故为3,可上网查阅此函数说明 */
getch();
closegraph();
return 0;
}