加速 CGAL 中的优化技术
Speed up optimization techniques in CGAL
我写了一个算法来遍历一组有孔的多边形。算法的复杂度n2。算法检查每个多边形与每个其他多边形的交集。每个对象包含大约 100 到 1000 个点。但是当处理 50 个对象需要 40 到 200 秒时,我感到很害怕。我还需要检查 100,000 个对象。在 CGAL 中是真的吗?
CGAL有没有加速优化的技巧?
对于每个多边形,首先计算多边形的所有边界框。如果要检查多边形的交点,首先要检查的是多边形的边界框是否相交。如果不相交,则多边形不能相交。
那么,为了避免所有潜在交集对的二次计算,我建议你使用下面的CGAL包,以加快计算速度:Intersecting Sequences of dD Iso-oriented Boxes。该包提供了一个可以快速报告所有相交边界框对的功能。然后,对于每一对,您可以验证这两个多边形是否确实相交。
我写了一个算法来遍历一组有孔的多边形。算法的复杂度n2。算法检查每个多边形与每个其他多边形的交集。每个对象包含大约 100 到 1000 个点。但是当处理 50 个对象需要 40 到 200 秒时,我感到很害怕。我还需要检查 100,000 个对象。在 CGAL 中是真的吗?
CGAL有没有加速优化的技巧?
对于每个多边形,首先计算多边形的所有边界框。如果要检查多边形的交点,首先要检查的是多边形的边界框是否相交。如果不相交,则多边形不能相交。
那么,为了避免所有潜在交集对的二次计算,我建议你使用下面的CGAL包,以加快计算速度:Intersecting Sequences of dD Iso-oriented Boxes。该包提供了一个可以快速报告所有相交边界框对的功能。然后,对于每一对,您可以验证这两个多边形是否确实相交。