建立一個X, Y的物件表,
struct axis_bind
    {
        axis_bind(float* v, Ball* b):
        value(v), ball(v){}
        float* value;
        Ball* ball;
        bool operator < (const axis_bind& ab)
        {
            return *value < *ab.value;
        }
    };
並對表做排序,
之後用二分搜尋拿到,
你要碰撞的那個區間,
將X與Y拿到的集合取交集後,
再做仔細的判斷 http://www.codeproject.com/KB/GDI-plus/PolygonCollision.aspx 。

可以用這個方法,
動態改變kdtree的配制,
說不定可以達到real time 120FPS 50000個point。

或是動態分群。

=================================

最近發現有更神速的方法,
用partition 秒殺。

最近讀了一些paper發現有很多相關的tree,
不過實用的不多。

Bullet物理引擎有一個範例可以用。

real time collision detection 這本有寫很多相關或詳細的碰撞,
準備來跟bullet pk~

讓地獄深紅的天亮 發表在 痞客邦 PIXNET 留言(0) 人氣()