7

我最近遇到了需要一个库或一组库来处理二维多边形上的操作。我需要能够执行布尔/裁剪操作(差异和联合)和三角测量。

到目前为止,我发现的库是poly2triCGALGPC。Poly2tri 看起来很适合三角剖分,但我仍然需要布尔运算,而且我不确定它的成熟度。

只有我自己的项目是免费的,CGAL 和 GPC 才免费。我的特定项目不是商业项目,所以我对支付或申请任何许可证犹豫不决。但我可能想将我的代码用于未来的商业项目,所以我对 CGAL 的开源许可证和 GPC 的仅限免费软件的限制犹豫不决。似乎没有任何具有良好 BSD 风格许可证的多边形裁剪库。

哦,C/C++ 是首选。

4

5 回答 5

11

Clipper 是一个开源的免费软件多边形裁剪库(用 Delphi 和 C++ 编写)^,它完全符合您的要求(三角测量除外) - http://sourceforge.net/projects/polyclipping/

在我的测试中,Clipper 比 GPC 快得多,而且更不容易出错(在此处查看更详细的比较 - http://www.angusj.com/delphi/clipper.php#features)。

Re: Anti-grain Geometry (AGG) 图形库 - 它不进行多边形裁剪,而只是使用 GPC(对于商业应用程序不是免费的)。但是,Clipper 确实具有 AGG 单元,可以使 AGG 中的裁剪与 GPC 一样简单。

^ 编辑:Clipper 现在也是用 C# 编写的(连同第三方编写的 Perl、Ruby、Haskell 和 Flash 模块)。

于 2010-06-15T21:34:44.723 回答
3

PolygonLib 是一个用С++ 编写的新多边形裁剪库,已经在两个项目中使用。它在数值上是稳健的,使用坐标,并且针对具有大量顶点的多边形进行了优化。请参阅http://www.ulybin.de/products/polygonlib.php?lang=en了解更多详细信息以及与 GPC 和 PolyBoolean 的性能和内存利用率比较。

该库的受限评估版可免费用于非商业用途,并支持您需要的操作(三角测量除外)。

于 2012-11-19T08:53:28.517 回答
2

How about boost? http://www.boost.org/doc/libs/1_47_0/libs/polygon/doc/index.htm

If you're fine with the heavy use of generics in the interface, I suspect this will serve your purposes well. I'm not sure if it contains triangulation, but you can implement one of the many available triangulation algorithms if it does not.

于 2011-09-01T00:36:14.150 回答
0

看看Liszt的 Scala DSL

于 2010-06-13T20:56:13.157 回答
0

http://www.antigrain.com/license/index.html是我能找到的最接近的,如果它真的要商业化,你可能要花一大笔钱,但你现在可以免费使用它,以后再征得同意.

于 2010-06-15T21:53:33.667 回答