[英]C# Drawing: What is the best way to draw a polygon with a hole in the middle
我有一个由外边框和内边框定义的形状。 如果没有内边框,则形状是实心的。 如果有内部边界,我希望仅在两个边界之间定义多边形/路径; 我不想画外面,然后用背景颜色画里面。
例如,如果我有一个由外部边界坐标定义的正方形:
{0,0}, {20, 0}, {20,20}, {0, 20}
然后是 20x20 的正方形,其左下角位于原点。 然后该形状从中心切出一个三角形:
{10,10}, {15,10}, {15,15}
如何使用 WPF 或 GDI+ 创建包含此形状的路径?
您可以使用 XAML 绘制该形状:(关键是使用带有GeometryCombineMode="Exclude"
的CombinedGeometry
)
<Path Fill="Black">
<Path.Data>
<CombinedGeometry GeometryCombineMode="Exclude">
<CombinedGeometry.Geometry1>
<RectangleGeometry Rect="0,0,20,20"/>
</CombinedGeometry.Geometry1>
<CombinedGeometry.Geometry2>
<PathGeometry>
<PathFigure StartPoint="10,10">
<LineSegment Point="15,10"/>
<LineSegment Point="15,15"/>
</PathFigure>
</PathGeometry>
</CombinedGeometry.Geometry2>
</CombinedGeometry>
</Path.Data>
</Path>
在 GDI+ 中,您可以将FillPath()
或DrawPath()
与FillModeAlternate
一起使用。
有一个非常接近你在这里要求的例子。
只需使用背景颜色在主轮廓顶部绘制孔。 如果您使用的 api 不支持孔,则它们看起来好像是真正的孔编辑使用此方法。 这就是为什么我假设你在问
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.