1
私は、分離軸定理をjavaで実装しました。 衝突検出自体は素晴らしいです。 しかし、衝突を解決するには、私は立ち往生しています。翻訳を取得するには分離軸定理における変換方向
私の方法は、次のようになります。
public float getOverlap(final Projection other) {
float start = m_min > other.m_min ? m_min : other.m_min;
float end = m_max < other.m_max ? m_max : other.m_max;
float translation = end - start;
return translation;
}
は写真の2つの矩形の投影は次のようになりますと言うことができます。
R1.min = 2
R1.max = 8
R2.min = 5
R2.max = 11
私はR2対R1をチェックすると、翻訳は3 私は翻訳も3
なりますR1対R2をcheclされる場合は、今私は、正規化に翻訳を追加軸
Normalized axis = Vector(1,0)
Translation Vector = Vector(1,0)*3 = Vector (3,0)
ここで、R1とR2の両方が右に3ポイント移動しますが、異なる方向に移動するように指定されています。 R1はVector(-3,0)を移動し、R2はVector(3,0)を移動する必要があります。
正しい方向を計算するにはどうすればよいですか?