填充2D多边形

本文关键字:多边形 2D 填充 | 更新日期: 2023-09-27 18:26:04

给定一个由一组点组成的2D多边形,我希望通过多边形内部绘制阴影。我所说的影线是指将线条均匀地隔开,角度都在45度左右。

我很难想出一种不会很慢的方法来实现这一点,因为我必须对照所有多边形边检查每条预期的线是否相交。

有人知道如何处理这个问题吗,或者有任何现有的技术可能奏效吗?

谢谢。

填充2D多边形

您可以像这样使用FillPolygon和HatchBrush:

protected override void OnPaint(PaintEventArgs e)
{
    base.OnPaint(e);
    //A using statement on the brush will make sure it is disposed.
    using (var b1 = new HatchBrush(HatchStyle.ForwardDiagonal, Color.Red))
    {
        PointF[] points = methodThatReturnsPointsForAPolygon();
        e.Graphics.FillPolygon(b1, points);
    }
}