寻找具有特定功能的Polygon Geometry库

时间:2011-09-28 16:36:31

标签: c++ objective-c c geometry polygon

我正在对Objective C,C或C ++(按优先顺序)实现的多边形/几何算法库进行调查。我有非常具体的需求,所以我想我会问社区是否有人知道哪一个满足其中的部分或全部,因为我更愿意使用一个库/ API满足我的所有需求。这就是我需要做的事情:

  1. 2个多边形的交点
  2. 确定两个多边形是否一致(即相同的形状和大小,但它们可以旋转或镜像)
  3. 凸多边形的2d bin包装(也就是切片 - 或开口的bin包装,所以我最大限度地使用了一系列固定宽度的材料)
  4. 与#3相同,但对于凹面多边形
  5. 能够获取一组线段,其中一些线段共享端点,其中一些线段相互交叉并将其转换为一组多边形
  6. 与#5相同,但增加了检测带孔的多边形并将其分成2个多边形(其中至少有一个是凹的)的能力。
  7. 奖励:上述任何或所有具有由线条和曲线组成的封闭形状
  8. 这些是优先顺序,我可以解决它们中的任何一个缺席(我的应用程序变得不那么有用)。所以例如,如果我有一个只做1和2的库,我会发现它比3-7做的更有用。

2 个答案:

答案 0 :(得分:2)

在C ++中,它存在一些用于处理多边形几何的库,但我不知道它完全符合您的需求。

我在C ++中知道的一个非常有用的库是CGAL。它涵盖了您的一些需求,但不是全部。

答案 1 :(得分:1)

GEOS涵盖了您需要的一些内容。

GEOS很好地实现了几何之间的空间关系(交叉,触摸,重叠,在内,包含等)。

我不知道3-7是否内置(你可以进行行合并(5))。

对于7,GEOS不对曲线建模(仅形成线或多边形的点)。您可以在GEOS中定义的唯一封闭形状是多边形。