C语言如何绘制多边形(比如五角星)?

您所在的位置:网站首页 画空心五角星的方法图片简单 C语言如何绘制多边形(比如五角星)?

C语言如何绘制多边形(比如五角星)?

2024-07-14 10:50| 来源: 网络整理| 查看: 265

前面给大家讲了常见的常规图形,接下来这个图形稍微有些复杂,但绘出的图案更加五彩缤纷~,就是画多边形的函数polygon,这个函数不仅仅可以画规则的多边形,比如五边形、六边形、八边形等等,还可以画凹多边形以及各种奇怪的多边形,你都可以用它,先看看函数原型吧:

void polygon( const POINT *points, int num );

第二个参数很简单,表示多边形的顶点个数。第一个参数呢,别慌,它表示的是各个顶点的坐标

你可能会好奇const POINT *points怎么表示多个顶点的坐标呢?原因它是一个结构体指针。我们可以找到它的定义来看看,完整定义如下:

typedef struct tagPOINT {     LONG  x;     LONG  y; } POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;

是一个结构体指针,每个结构体里你可以放两个long型的x和y表示这个顶点的坐标。

比如我定义:

POINT points[] ={{100,0},{195,69},{159,181},{41,181},{5,69}};

那么pints数组里这十个数字就分别表示5个顶点的坐标。然后我们调用polygon函数,polygon函数就会按照这五点的顺序一次连线绘制。完整代码如下:

//www.dotcpp.com #include         // 引用图形库头文件 #include  int main() { POINT points[] ={{100,0},{41,181},{195,69},{5,69},{159,181}}; //POINT points[] ={{100,0},{195,69},{159,181},{41,181},{5,69}};         initgraph(640, 480);   // 创建绘图窗口,大小为 640x480 像素\ polygon(points,5); getch();            // 按任意键继续     closegraph();           // 关闭绘图窗口     return 0; }

注意,如果改变五个点的顺序,则会改变图形的形状,比如改为:

POINT points[] ={{100,0},{195,69},{159,181},{41,181},{5,69}};

则图案效果就变为:

等等,不是应该有填充吗?

噢对了,EasyX中图形的绘制,都有三种,一种是画线轮廓;第二种是有颜色填充有轮廓;第三种是有颜色填充没有轮廓。

以圆形为例,三种函数的命名分别为:circle、fillcircle、solidcircle。注意三个函数的命名规则

那么类似的,画多边形的三个函数也分别为polygon、fillpolygon、solidpolygon。比如前面的例子就是polygon画的,如果想加颜色,不带外面的轮廓,则可以调用solidpolygon函数,参数都不变,代码如下:

//www.dotcpp.com #include         // 引用图形库头文件 #include  int main() { //POINT points[] ={{100,0},{41,181},{195,69},{5,69},{159,181}}; POINT points[] ={{100,0},{195,69},{159,181},{41,181},{5,69}};         initgraph(640, 480);   // 创建绘图窗口,大小为 640x480 像素 setfillcolor(LIGHTRED); solidpolygon(points,5); getch();            // 按任意键继续     closegraph();           // 关闭绘图窗口     return 0; }

两种不同顶点顺序的效果如下:

另一种:

请大家理解polygon的用法~多多尝试



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3