乙個簡單的多矩形碰撞演算法,有快於N 2的方法嗎?

時間 2021-06-01 06:50:49

1樓:管清文

我感覺線段樹可做,不知道有沒有bug

對左右豎線排序後,

如果碰到左豎線,y軸上端點標註+1, y軸下端點的標註-1,計數器C += 1

如果碰到右豎線,y軸上端點標註-1, y軸下端點的標註+1,計數器C -= 1,並query,s1=y軸上端點上面的和,與,s2=y軸下端點下面的和,answer += C - |s1| - |s2|

複雜度O(nlogn)

2樓:

極限情況是所有矩形都相交,這樣碰撞對的數量是

所以不會有以下的複雜度

看了下原來題目只是求數量,那就是,思路應該就是和 @黃魏 提到的大同小異了,不會有更小了,至少遍歷掃瞄個矩形,每個前面數量上限,表示就需要,所以整體

3樓:Milo Yip

Sweep and prune[1] 考慮到 temporal coherence,但對於靜態的資料,也可以簡單地在乙個軸上對所有 AABB 極值進行 排序,再順序遍歷找到該軸上重疊的 candidates,然後在另一軸上檢查是不相交。但最壞情況都會是 。

[1] Cohen, Jonathan D., et al. "I-COLLIDE:

An interactive and exact collision detection system for large-scale environments." Proceedings of the 1995 symposium on Interactive 3D graphics. ACM, 1995.

摧毀乙個學生有多簡單?

star永恆 只要一直誇他 你真聰明!就夠了!當他拿到乙個好成績時,誇他真聰明,而不是對他之前的努力學習做出肯定 當他認真寫作業時,對他說 你這麼聰明,都會的東西,隨便糊弄一下就好了。只要讓他潛意識一直認為自己是聰明人,具有 我做什麼都可以完成,因為我很聰明。的傲慢時,這個學生就毀了。所以有多少人小...

摧毀乙個熊孩子有多簡單?

小提燈人 任何人小時候都是熊孩子,孩子本身是自然產物,不是社會產物,不符合人類社會的生存規則很正常,將孩子的錯誤歸結於孩子本身,就像將雪糕融化歸結於雪糕自己不撐勁一樣是不合理的,錯的是大人的教育問題,錯的是社會環境,錯的是變動的人心,不是乙個對世界所知了了,尚沒有完備的資訊獲取 思考和判斷能力的孩子...

摧毀乙個長舌婦有多簡單?

銀湖的妖靈 摧毀 她的最佳方式大概是。不要被她任何一句詆毀你的話語激怒!她講任她講,我當沒事發生 內心強大起來 你要讓她閉嘴也可以,就是你得先不受她的負面言論調動你的情緒,氣定神閒,不計較你的得失,你自有妙招 讓她閉嘴!比如 在她在人群中給你造謠時,你憤怒地找她對峙開罵和你平靜地過去和她及周圍的人地...