Re: [問題] boost polygon library 效能

看板C_and_CPP作者 (~renard~)時間11年前 (2012/12/23 22:27), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串2/4 (看更多)
謝謝大家推文,我會嘗試分析看看時間和n的關係 更精確來說我的問題: 圖示: http://img100.imageshack.us/img100/5840/testys.png
(抱歉想不到更好的了) 我有一堆polygon (由3~10個頂點組成) 且polygon之間不會相交 這一堆polygon (約20萬個),簡稱 polygon set A,圖中的黑色 而這堆polygon去作一些處理後, 頂點座標會稍微移動 處理完的polygons,簡稱 polygone set B,圖中的紅色 我想要用boost polygon library 去得出 A和B的差異 所以就用 他library提供的function A ^ B (XOR) 時間複雜度應該是O(nlogn),無intersection, n 約= 1~200萬 但是跑了半小時之久 如果我先將他們分開做 XOR會比較好嗎 (接下來還能Multi-thread) 但是分開又是另一種問題了,要如何確保不會將polygon 分屍... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.169.108.13

12/23 16:32,
作 profiling 阿
12/23 16:32

12/23 16:52,
最差時間複雜度是 N^2 , N=vertices + intersections
12/23 16:52

12/23 16:53,
有用過較小的例子去估時間嗎?
12/23 16:53

12/23 17:07,
變化不同的n去看time v.s. n的曲線.
12/23 17:07

12/23 20:38,
它的方法很快了,應該不能再快了
12/23 20:38

12/23 20:39,
如果你的polygon那麼多應該要先做aabb優化才是
12/23 20:39

12/23 20:42,
總之 他提供的是比較精確的計算 粗略的計算要先自己完成
12/23 20:42
-- -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.251.195.136

12/23 23:43, , 1F
會不會是因為你的polygon在xor之後產生洞?
12/23 23:43, 1F
文章代碼(AID): #1GrnJLaN (C_and_CPP)
文章代碼(AID): #1GrnJLaN (C_and_CPP)