算是一个很小的小算法,一般的话,可以考虑对当前多边形的 box(长方形)初步计算其填充点(保存在一个 List<Point>
当中),这个会比较简单。然后再从上面的点集中选择出在多边形内部的点(即通过判断点在多边形内外的算法得到),于是可以得到最终的结果了。
不过前面已经实现了多边形的平行线填充算法,利用这个算法会更加简单些
List<List<Line>> HatchParallel(Point origin, float angle, float spacing)
根据
HatchParallel(origin, angle, spacing)
获得平行线集根据
HatchParallel(origin, angle+PI/2, spacing);
获得旋转90°
的平行线集将两个平行线集进行求交计算就能得到全部的内部点了
效果图如下: