2011-11-26 96 views
3

爲什麼大多數(如果不是所有的)碰撞檢測算法要求每個2D主體都有一個AABB僅用於廣義相位?軸對齊邊界框vs邊界橢圓

在我看來,就像簡單地在2D物體的質心處放置一個圓,並將半徑延伸到圓包圍整個身體的位置將是最佳的。在身體旋轉後,不需要更新,寬廣的重疊計算會更快。正確?

獎勵:
會的邊界橢圓是寬泛階段計算也實用,因爲它會更好地代表長,瘦的形狀?還是需要進行大量的計算,否定了廣泛的目的?

回答

2

邊界框由線性不等式約束表示,而圓和橢圓需要二次不等式約束。一個人可以同時工作,但線性情況一如既往,算法解決要簡單得多(它只涉及矩陣乘法)。如果邊界框與世界座標軸對齊,則所有檢查看起來像xa - xb > dxa + dxb,ya - yb > dya + dybza - zb > dza + dzb,其中d$i$j是在$i$方向上圍繞對象$j的邊界框的尺寸。

但是,橢圓碰撞檢測正在完成。數學難度更大,實施和計算工作可能不值得節省。無論如何,我搜索了谷歌學者的「橢圓碰撞檢測」,至少有兩篇論文在第一頁似乎正是這個話題:http://hub.hku.hk/bitstream/10722/47091/1/121854.pdf?accept=1ftp://crack.seismo.unr.edu/downloads/russell/doven_2005_neighbor_list_collision_driven_MD_II.PDF