日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

碰撞检测技术:kd tree

發布時間:2025/3/15 编程问答 39 豆豆
生活随笔 收集整理的這篇文章主要介紹了 碰撞检测技术:kd tree 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

接上文.
參考: http://bit.kuas.edu.tw/~cscheng/research/paper/kdtree.htm

根據我現在的理解. 比起blockmap, kd樹很靈活,它可以公平地劃分塊. 保證每塊的星星一樣多. 但是要分配出一個二叉樹(3D仍應是二叉)的結構,當深度比較大時,比如log(starn),就會費內存了. 還是用前面的例子實現...:

首先要計算層數,就是kd tree里面的k. 設星球總數為m,層數為k,用后面說的方法就得出大致的時間方程: T=(m/2^k)^2+k*m,(b<=log2(m)),求T最小值時的k. 這個指數方程不會解~ hehe,暫定為k=log2(m)好了. 接著開始劃分并建立樹, 首先第一刀豎著切,x=所有星的x平均數,這樣就分別把兩邊的星星標記為2和3,表示當前屬于2號和3號結點,這是第1層;再分別給2和3的區域橫著切兩刀,y仍取平均數,這是第2層.... 這樣橫豎交替地切,因此在建立每一層就要遍歷starpool[]一次,一共是k*m次的位置檢索. 而最后被歸到同一個葉結點的星星組串成循環鏈表,以便對每組內部做n=(m/2^k)^2/2次碰撞檢測. 現在就明白T的計算方法了.

午飯和晚飯都沒吃,無法再思考下去了. 至于kd tree的效果是不是非常好,是否用在網游里更合適. 以后再想.

轉載于:https://www.cnblogs.com/euclid/archive/2006/12/19/597157.html

總結

以上是生活随笔為你收集整理的碰撞检测技术:kd tree的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。