【发布时间】:2023-03-30 15:42:01
【问题描述】:
我正在尝试绘制一个具有多个孔的多边形。我尝试了以下代码,但它无法正常工作。请指教。
PointF[] mypoly = new PointF[6 + 5 + 5];
mypoly[0] = new PointF(0, 0);
mypoly[1] = new PointF(100, 0);
mypoly[2] = new PointF(100, 100);
mypoly[3] = new PointF(0, 100);
mypoly[4] = new PointF(10, 80);
mypoly[5] = new PointF(0, 0);
mypoly[6] = new PointF(10, 10);
mypoly[7] = new PointF(10, 20);
mypoly[8] = new PointF(20, 20);
mypoly[9] = new PointF(20, 10);
mypoly[10] = new PointF(10, 10);
mypoly[11] = new PointF(40, 10);
mypoly[12] = new PointF(40, 20);
mypoly[13] = new PointF(60, 20);
mypoly[14] = new PointF(60, 10);
mypoly[15] = new PointF(40, 10);
g.FillPolygon(new SolidBrush(Color.Red), mypoly, FillMode.Winding);
第一部分是外多边形。第二和第三部分是多边形内部的两个孔。
【问题讨论】:
-
你得到了什么?有什么理由不能是 3 个单独的多边形吗?
-
FillMode 有什么尝试?这控制了交叉点的渲染方式。
-
为什么不用一种颜色绘制外部多边形,用“背景”颜色绘制内部多边形?