有没有人使用Boost多边形库的布尔函数? Boost polygon library
它表示该算法的时间复杂度为O(nlogn),n = #points
我输入了200000个随机生成的多边形(5~8个potins)
但OR和XOR函数花费大约半小时(是的,只需调用它的函数)
虽然结果是正确的,但耗费时间很可怕
有没有人遇到过这个问题?
答案 0 :(得分:0)
尽管发布展示所述行为的代码总是有帮助的,但我假设每个i = 1..n多边形与前面的每一个都有一些(唯一的)交叉..(i-1)多边形,这意味着对第一个n-1多边形进行异或运算产生的点数在n中是二次的,所以你要求n次操作O(#Points * log(#Points))其中#Points是O(n ^ 2),因此总复杂度为O(n ^ 2 * log(n))。