寻找具有特定功能的多边形几何库

Looking for Polygon Geometry library with specific capabilities

本文关键字:多边形 何库 功能 寻找      更新时间:2023-10-16

我正在调查在Objective C, C或c++(按优先顺序)中实现的多边形/几何算法库。我有非常特殊的需求,所以我想我应该询问社区,看看是否有人知道一个满足部分或全部需求的库/API,因为我更喜欢使用一个库/API来满足我的所有需求。这就是我需要能够做的:

  1. 两个多边形的交点
  2. 确定两个多边形是否一致(即相同的形状和大小,尽管它们可以旋转或镜像)
  3. 凸多边形的二维bin包装(又名板材切割-或开放式bin包装,所以我最大限度地使用固定宽度的材料)
  4. 与#3相同,但适用于凹多边形
  5. 采用一组线段的能力,其中一些线段共享端点,其中一些线段彼此相交,并将其变成一组多边形
  6. 与#5相同,但增加了检测有孔的多边形并将其分解为2个多边形(其中至少有一个是凹的)的能力
  7. 奖励:上述任何或所有由线条和曲线组成的封闭形状

这些是按优先级排序的,我可以在没有它们的情况下工作(我的应用程序只是变得不那么有用)。例如,如果我有一个只处理1和2的库,我会发现它比处理3-7的库更有用。

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

一个非常有用的库,我知道在c++是CGAL。

GEOS涵盖了您需要的一些东西。

几何图形之间的空间关系(相交、接触、重叠、在内、包含等)被GEOS很好地实现了。

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

对于7,GEOS不模拟曲线(只模拟形成直线或多边形的点)。GEOS中唯一可以定义的闭合形状是多边形。