计算多边形的阴影线

时间:2017-01-17 11:02:43

标签: c++ geometry 2d cgal

我有一堆(2D)多边形,我需要计算填充(填充)线(线和角度之间的距离是可变的)。一些多边形可以嵌入其他形成某种“洞”的多边形中,然后应该将其排除在阴影之外。

我的问题:CGAL中是否有可用于支持此类计算的包/库?

在我的情况下,使用纹理或类似的东西的普通OpenGL效果不会起作用,我真的需要一堆矢量线作为此操作的结果,因为它不仅必须在屏幕上显示。

谢谢!

2 个答案:

答案 0 :(得分:0)

当然,您可以使用Arrangement包来实现您想要的效果。但是有很多方法可以做到。

也许最简单的方法是首先将剖面线裁剪成线段,然后使用影线和多边形线段计算线段的排列。 然后你可以过滤你不感兴趣的边缘。使用arrangement with history来回到原始曲线可能是个好主意。

答案 1 :(得分:0)

针对多边形(及其孔)剪切每个阴影线并合并结果将产生所需的矢量表示。 CGAL有一个用于多边形上的这种布尔运算的包:2D规则化布尔集 - 操作(参见文档中的Boolean Set-Operations on Linear Polygons)。