solidpolygon

这个函数用于画无边框的填充多边形。

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

参数

points

每个点的坐标,数组元素个数为 num。
该函数会自动连接多边形首尾。

num

多边形顶点的个数。

返回值

备注

该函数使用当前线形和当前填充样式绘制无边框的填充多边形。

示例

以下代码片段绘制一个封闭的填充三角形(两种方法):

// 方法 1
POINT pts[] = { {50, 200}, {200, 200}, {200, 50} };
solidpolygon(pts, 3);
// 方法 2
int pts[] = {50, 200,  200, 200,  200, 50};
solidpolygon((POINT*)pts, 3);

以下完整代码绘制一个五角星:

#include <graphics.h>
#include <conio.h>
#include <math.h>

#define PI 3.14159265359

int main()
{
	// 创建绘图窗口
	initgraph(640, 480);

	// 定义数组,保存五角星的五个顶点坐标
	POINT pts[5];

	// 计算五角星的五个顶点坐标
	double a = PI / 2;
	for (int i = 0; i < 5; i++)
	{
		pts[i].x = int(320 + cos(a) * 100);
		pts[i].y = int(240 - sin(a) * 100);
		a += PI * 4 / 5;
	}

	// 设置填充模式为 WINDING
	setpolyfillmode(WINDING);
	// 设置填充颜色为红色
	setfillcolor(RED);
	// 绘制五角星(无边框)
	solidpolygon(pts, 5);

	// 按任意键退出
	_getch();
	closegraph();
}
(贡献者:慢羊羊  编辑