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











网友评论