原点を中心とし、一辺の長さ 2 の軸に沿った立方体の表面上のユークリッド 3空間内(x1, y1, z1)
の2 点を とし、 とする。(x2, y2, z2)
立方体の表面上のポイント間の距離 (または二乗距離) を効率的に計算するにはどうすればよいですか?
内部的には、私はポイントを次のように表現しています(offset1, offset2, faceNumber)
が、(x,y,z)
フォーマット (上記参照) はすぐに利用できます。
私は C か Python のコードを好みますが、疑似コードでもなんでも喜んで受け入れます。
編集:
いくつかの事実:
- 最短経路は、x、y、および z で常に単調です。
- ポイントが同じ面にある場合、それは自明なユークリッド距離です。
- ポイントが同じ面にない場合、最短パスには 2 つまたは 3 つの面が含まれる可能性があります。