21xrx.com
2024-11-05 22:03:40 Tuesday
登录
文章检索 我的文章 写文章
VC++ Win32程序实现填充的Polygon三角形绘制
2023-06-23 12:48:27 深夜i     --     --
VC++ Win32程序 Polygon 三角形绘制 填充

在VC++ Win32程序中,我们可以使用Polygon函数来绘制多边形,但绘制三角形时只能够画出线框,而不能进行填充。本文将介绍如何使用Polygon函数绘制填充的Polygon三角形。

1. 绘制一个三角形

我们先来看如何绘制一个三角形。使用Polygon函数实现只需要设置一个POINT数组,其中每个元素的x和y坐标分别表示三角形的三个顶点的位置。

下面的代码实现了绘制红色的三角形:


void DrawTriangle(HDC hdc)

{

  POINT triangle[3] = { 50, 100 , 200 };

  HPEN hPen = CreatePen(PS_SOLID, 1, RGB(255, 0, 0));

  HPEN hOldPen = (HPEN)SelectObject(hdc, hPen);

  Polygon(hdc, triangle, 3);

  SelectObject(hdc, hOldPen);

  DeleteObject(hPen);

}

2. 填充三角形

要进行填充,我们需要使用一个新的函数 - GradientFill。该函数可以用来填充多边形,我们只需要设置好填充色、起始点和结束点等参数即可。

下面的代码实现了绘制一个填充色为蓝色的三角形:


void FillTriangle(HDC hdc)

{

  POINT triangle[3] = { 200 , 150 , 200 };

  TRIVERTEX triVert[3] = {

    { triangle[0].x, triangle[0].y, 0xFF00, 0x0000, 0x0000, 0x0000 },

    { triangle[1].x, triangle[1].y, 0x0000, 0x00FF, 0x0000, 0x0000 },

    { triangle[2].x, triangle[2].y, 0x0000, 0x0000, 0xFF00, 0x0000 }

  };

  GRADIENT_TRIANGLE gradTri = 2 ;

  GradientFill(hdc, triVert, 3, &gradTri, 1, GRADIENT_FILL_TRIANGLE);

}

在triVert数组中,我们设置了三个TRIVERTEX结构体来表示三角形的三个顶点。TRIVERTEX结构体是GradientFill函数的一个参数,包含了颜色、位置等信息。我们可以通过调整三个结构体的R、G、B数值来设置三角形的填充色。gradTri结构体用于指定三角形所在的顶点索引。

最后,我们通过调用GradientFill函数进行填充。函数的第一个参数为HDC,第二个参数为TRIVERTEX数组,第三个参数为数组长度,第四个参数为GRADIENT_TRIANGLE结构体数组,第五个参数为该数组的长度,而最后一个参数表示我们要绘制的形状为三角形。

通过以上两段代码的组合,我们就可以轻松绘制一个填充色的多边形三角形。

以上就是VC++ Win32程序实现填充的Polygon三角形绘制的方法。使用Polygon函数可以方便快捷地绘制多边形,而GradientFill函数则可以让我们轻松填充多边形,使得绘图更加美观和好看。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复