10

衝突検出ライブラリの2番目のバージョンを実装しています。この特定のライブラリは、軸整列ボックス(AABB)を処理する必要があります。このバージョンで動きの速いボックスの追跡を開始したいと思います。両者のミンコフスキー差を計算することは、そのための良い出発点になると思います。

私がミンコフスキー差と言うとき、私はダミーの衝突検出で説明されている幾何学的操作を意味します。

キャッチは次のとおりです。そこで説明されているプロセスとアルゴリズムは非常に一般的です。かなり高度なベクトル計算を使用して、任意の2つのポリゴンのMDを計算します。

私の場合、AABBがあります。数値が単純であることを考えると、これまでのところ、ライブラリにはベクトルの概念は必要ありませんでした。たとえば、単一の内積を計算する必要はありませんでした。できればそのままにしておきたいです。

だから私の質問は:

{t1,l1,w1,h1}上、左、幅、高さ(および)で2つのAABBが{t2,l2,w2,h2}ある場合、(可能であればベクトル計算を取得せずに)MDを計算するにはどうすればよいですか?

ダミーの衝突検出のウィジェットで遊ぶだけで、MDの幅が幅w1+w2と高さのボックスになることはほぼ確実ですh1+h2。しかし、私はその上隅または左隅を計算する方法についてはわかりません。

4

1 に答える 1

31

2つの軸に整列した長方形{t1、l1、w1、h1}と{t2、l2、w2、h2}のミンコフスキーの違いは、それ自体が軸に整列した長方形です。

l = l1 - l2 - w2
t = t2 - t1 - h1
w = w1 + w2
h = h1 + h2

以下は、これが実際に動作していることを示す短いjavascriptデモです。2つの長方形のいずれかをドラッグできます。重ねると色が変わります

デモ: http: //jsbin.com/afojes/2/

コード: http: //jsbin.com/afojes/2/edit

衝突なし

衝突が検出されました

于 2012-11-22T08:34:58.883 に答える