Union 多边形操作库

Union 多边形操作库,union,polygon,clipping,triangulation,Union,Polygon,Clipping,Triangulation,我最近遇到一个需要一个或一组库来处理二维多边形上的操作的问题。我需要能够执行布尔/剪裁操作(差分和并集)和三角剖分 到目前为止,我找到的图书馆有,和。Poly2tri看起来很适合三角剖分,但我仍然只剩下布尔运算,我不确定它是否成熟 只有我自己的项目是免费的,CGAL和GPC才是免费的。我的特定项目不是商业性的,所以我对支付或申请任何许可证犹豫不决。但我可能想在未来的商业项目中使用我的代码,所以我对CGAL的开源许可证和GPC的仅限免费软件的限制犹豫不决。似乎没有任何多边形剪辑库具有良好的BSD样

我最近遇到一个需要一个或一组库来处理二维多边形上的操作的问题。我需要能够执行布尔/剪裁操作(差分和并集)和三角剖分

到目前为止,我找到的图书馆有,和。Poly2tri看起来很适合三角剖分,但我仍然只剩下布尔运算,我不确定它是否成熟

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


哦,C/C++是首选。

查看Scala DSL

Clipper是一款开源免费软件多边形剪裁库(用Delphi和C++编写)^它完全满足您的要求(三角测量除外)——

在我的测试中,Clipper比GPC更快,更不容易出错(请参阅此处更详细的比较-)

Re:反颗粒几何图形库(AGG)-它不进行多边形剪裁,只使用GPC(这对于商业应用来说不是免费的)。然而,Clipper确实有AGG单元,使AGG中的剪辑与GPC一样容易

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

是我能找到的最接近的,如果它真的投入商业化,你可能需要花费一美元,但你现在可以免费使用它,以后再获得同意。

boost怎么样


如果您对在接口中大量使用泛型感到满意,我怀疑这会很好地满足您的需求。我不确定它是否包含三角剖分,但如果不包含,您可以实现许多可用三角剖分算法中的一种。

PolygonLib是一个用С++编写的新多边形剪裁库,已经在两个项目中使用。它在数值上是健壮的,使用双坐标,并针对具有大量顶点的多边形进行了优化。有关性能和内存利用率与GPC和PolyBoolean的更多详细信息和比较,请参阅


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

谢谢,尽管我只是在寻找几何体库。Anti-Grain是一个完整的渲染库。很有趣。您是否有任何使用您的库的项目作为示例。如果是新的,没有冒犯的意思,但成熟和稳定是我一直在寻找的东西。没有冒犯的意思:)。我在几周前才完成核心库的编写,所以我怀疑是否有人有时间对其进行全面评估并将其集成到自己的代码中。有什么原因吗?例如,GPC并没有这样做。Clipper最初使用浮点坐标,但在数值上并不可靠。无论如何,用户通过将浮点乘以比例因子(取决于所需的精度)将浮点转换为整数非常简单。由于Clipper坐标可以是+/-6.5e+18之间的任何整数值,因此应能适应任何合理的精度。我认为使用64位整数是Clipper稳定性的关键。感谢安格斯为这个图书馆所做的工作,这是一个真正伟大的贡献。:)有趣的答案。。。你和这个天秤座有关系吗?如果没有,请说明;)我领导了这个库的开发,开发了它的算法、API和体系结构。