2011-06-29 7 views
2

私は2つの長方形を持っています.1つは動いていて、もう1つは静止しています。私は、長方形と移動矩形の現在の座標の両方のサイズと、行きたい場所の座標を持っています。それは一直線に動くでしょう。この情報を使って、2つのボックスがパス上で衝突するかどうかを見つける最も効果的な方法は何ですか?これを行うか、箱ごとに少量ずつフレームを移動し、毎回衝突検出を行う方が効率的ですか?パス上の長方形の衝突の検出

答えて

2

矩形の一方が静止しているので、これを行う一つの方法は、その最初と最後の位置を用いて行うことができる移動矩形、が移動する経路のポリゴンを作成することである。

(initial position) 
+--------+ 
|\  |\ 
| \  | \ 
+--\-----+ \ 
\ \  \ \ 
    \ +-----\--+ 
    \ |  \ | 
    \|  \| 
    +--------+ 
     (final position) 

パスポリゴン:

+--------+ 
|   \ 
|   \ 
+   \ 
\   \ 
    \   + 
    \   | 
    \   | 
    +--------+ 

次に固定矩形とパスポリゴンの間に通常のポリゴン衝突検出アルゴリズムを使用します。

+0

ええ、これをテストします。 – Yifan

0

一定速度で動いている場合、最も効率的な方法は、衝突する時刻(時間=速度/距離)と衝突するかどうかを計算することです(直線運動方程式を導出し、固定長方形)。可変速度で移動している場合は、速度が変わるたびにこれらの計算を実行します。これらは両方とも、各フレームの比較よりもはるかに効率的です。