我目前正在确定两个多边形是否相互交叉。我在CGAL的文档网页中找到了一个例子: http://doc.cgal.org/latest/Boolean_set_operations_2/Boolean_set_operations_2_2do_intersect_8cpp-example.html
但是,此代码使用GMP的有理数字库,因此它相对较慢。在我的问题中,我需要确定数千次多边形的交集。因此,我想知道是否有一种只使用浮点运算的替代方案,以便它可以更快地运行? 非常感谢。
答案 0 :(得分:0)
CGAL声明:“CGAL将浮点运算与精确运算结合起来,以便高效可靠.CGAL有内置的数字类型,但Gmp和Mpfr提供了更快的解决方案,我们建议使用它们“。 (1) 根据我的经验,这就是CGAL的用途,精确计算。
如果您使用CGAL因为它直接提供多边形交叉特征,则可能有替代库。以下是alternative thread中的一些内容。
最后一个想法。您还可以加速CGAL中的代码。在你的情况下,我建议计算每个多边形的边界框,然后首先对它们进行交叉测试。它已经消除了很多多边形对。