1

そして、いくつかの作業を終えて、KDopバウンディングボリュームがどのように作成され、衝突がどのように交差するかを最終的に理解し、それらの実用的な実装を作成しました。今、問題は別です。:D

異なるK値の2つのK-Dopをどのように交差させることができますか(可能でなければなりません、または意味がありません)?(明らかに、これらの2 K-Dopを作成するためにどの軸が使用されたかは事前にわかっています。)

DOP6(AABB)とDOP14(AABB +コーナーカットオフ)をどのように交差させることができますか?または、DOP14(AABB +コーナーカットオフ)とDOP26(AABB +コーナーカットオフ+エッジカットオフ)?

簡単な方法(同じKを持つKDOP間)は次のとおりです。

 public Boolean Intersects(kDOP a, kDOP b)
        {
            // TODO : How to do if the K is not the same?
            for (int i = 0; i < a.K / 2; i++)
                if ((a.Min[i] > b.Max[i]) || (a.Max[i] < b.Min[i]))
                    return false;
            return true;
        }

別の質問はです。KDOPとスフィアを交差させる方法は?KDOPとカプセル?KDOPとOOB?KDOPとAABB?(異なるKを使用する方法を知っていると、これは簡単になるはずです(AABBは基本的にDOP6であるため))これらの単純な構造を交差させる一般的な方法は何ですか?

答えてくれてありがとう!!!

編集:ネットでの検索から、分離軸が進むべき道のようですが、K-DOPでそれを実装する方法についての詳細な情報を見つけることができません。:P

編集2:誰かがKDOPに対する分離軸の定理の実用的な実装を持っていますか?:|

4

1 に答える 1

1

Kの順序が異なる場合は、iループを最小のaK/2またはbK/2まで実行します。

于 2010-01-30T14:34:42.937 に答える