衝突検出アルゴリズムを実装して、すべてのオブジェクト間の距離を単一の octree ノードに格納します。たとえば、ノードに 4 つのオブジェクトがある場合、オブジェクト 1&2、1&3、1&4、2&3、2&4、3&4 の間に距離があります。ペアの総数の式は、t = n * (n-1) / 2 です。ここで、t はペアの総数、n はノード内のオブジェクトの数です。
私の質問は、リスト内の位置からオブジェクトのペアにどのように変換するかです。たとえば、上記のペアのリストを使用すると、3 はペア 2&3 を返します。
メモリのスペースを節約するために、リストは、距離と 2 つのオブジェクトへのポインタを含む代わりに、距離を表す float のリストにすぎません。
単一のリスト インデックスを数値のペアに数学的に変換する方法がわかりません。どんな助けでも素晴らしいでしょう。これを 2 つの関数に分割できるようにしたいと考えています。最初の関数はペアの最初のオブジェクトを返し、2 番目の関数は 2 番目のオブジェクトを返します。どちらの関数も 2 つの変数を取り、1 つはインデックスで、もう 1 つはオブジェクトの合計です。ノード。可能であれば、ループや再帰関数を使用せずに関数を作成したいと考えています。これは、衝突検出アルゴリズムのためにリアルタイムで実行されるためです。