37

CGAL 似乎做了我需要的一切,并且为我即将到来的项目做了更多。它可以从弧线段创建多边形并对其进行布尔运算。它已经有空间分类包,可以在一些事情上为我节省大量时间,而且整个图书馆看起来非常标准化和精心策划。

大多数软件包(除了非常基本的软件包)的许可证是 QPL(即将发布的 4.0 版的 GPL)的问题。我的预算很少,可能无法筹集资金来购买 CGAL 中需要它的特定软件包的商业许可证。

我对这样一个库的具体需求是:

  • 精确的二维欧几里得空间
  • 复杂多边形
  • 能够具有曲线(弧)段的多边形
  • 对这些多边形的布尔运算
  • 多边形偏移
  • 多边形分区或有效三角剖分
  • 内切面积和多边形拟合算法
  • 可能是一些带有圆形范围搜索的空间排序结构

总而言之,我正在寻找一个具有精确精度的全面的 2D 几何 C++ 库。 最好使用 MIT、LGPL 或低于 500 美元的低成本一次性免版税许可。

Boost 降低了一些基本结构,但据我所知,它们缺少很多更高级别的功能。任何对此进行扩展的库?我会考虑自己做,但我缺乏做好这件事的专业知识,而且它会延长我的项目相当多的时间。

为了清楚起见,我不是在寻找 2D图形库,只是在寻找纯几何结构。

4

4 回答 4

19

看看威科比。它是一个模板库,您可以将维度模板化为 2D。

它是根据 MIT许可证分发的。

于 2012-04-13T14:06:45.413 回答
17

看看计算机图形学的几何工具

  • 十余年精益求精
  • 令人难以置信的好文档,无论是硬装还是 PDF 格式
  • 提升许可证

它满足您的所有要求:

  • 精确的二维欧几里得空间:是
  • 复杂多边形:是
  • 能够具有曲线(弧)段的多边形:荒谬。根据定义,多边形由线段组成。如果您正在寻找样条曲线和 NURBS,库中有它们。
  • 对这些多边形的布尔运算:是
  • 多边形偏移:不清楚你的意思。该库当然支持翻译。
  • 多边形分区或有效三角剖分:是,Delaunay 三角剖分和 Voronoi 区域
  • 内切面积和多边形拟合算法:是
  • 可能是一些带有圆形范围搜索的空间排序结构:是的,空间排序和一整蒲式耳的交叉函数。

所有这些都来自Schneider 和 Eberly的Geomtric Tools for Computer Graphics一书。这本书非常出色,清楚地介绍了算法的工作原理以及它们的局限性。作者在 Boost 许可下在线提供了代码,并将本书的大部分(全部?)在线作为 PDF 包含在每个代码模块中。他们维护一个非常有用的网站,该网站以各种方式编入索引。

我与作者没有任何联系,也没有任何金钱利益。我在我的论文中使用了他们的书,它对它作为一个易于使用的参考和一个强大的图书馆感到非常满意。

于 2012-04-16T20:11:59.547 回答
4

你看过Boost.Geometry库吗?就功能而言,它与 CGAL 相去甚远,但它可能会对您有所帮助。

于 2012-04-13T14:17:23.850 回答
0

你可以试试 GeoLib www.geolib.co.uk。没有那么多功能,但确实提供布尔运算并且非常易于使用。

于 2014-02-18T21:22:45.430 回答