3

単位球 (r = 1) の表面にある 3D ポイントをリアルタイムでプロットしたいと考えています。

ここでは 2 つのスピン ベクトルが働いています。1 つのベクトルは Y 軸を中心に回転します。その X と Z の値は、すべての Y 値が 0 に等しい X/Z 平面上に完全にある円の cos() と sin() を使用して計算されます。 X 軸。すべての X 値が 0 に等しい、Z/Y 平面上に完全にある円の cos() と sin() を使用して計算された Z と Y の値です。通常、2 つのベクトルの角運動量は同じ。ただし、ベクトルの端点は、半径が 1 に等しい共通の球の表面に沿っています。したがって、それらは同じ大きさであり、両方とも同じ 0, 0, 0 ポイントから発生します。

最初のベクトルに angXZ と呼ばれる角運動量項があり、2 番目のベクトルに angZY があるとします。つまり、いつでも angXY と angZY を使用して、スピン ベクトルごとに 1 つずつ、2 つのポイントを計算できます。これらの 2 つの 3D ポイントを使用して、同じく単位球の表面上にあり、angXZ と angZY から計算された 2 つのポイント間の正しい補間となる 3 番目のポイントを計算する式は何ですか?

単位球の表面にある任意の 2 つの 3D 点が与えられた場合、それらが両方とも円周上にある唯一の円 (平面) が存在することが頭の中でわかります。また、補間された点の座標を計算することは、計算された 2 つの点が円周を共有する円に投影されたときに、それらによって作成される角度を二等分することに帰着することも直感できます。しかし、翻訳と数学に頭を悩ませることはできません。

単位球の表面上にある 2 つの 3D 点を取り、その表面上にあり、最初の 2 点間の正しい補間となる 3 番目の点を計算する簡単な式はありますか?

問題がある場合は、Delphi Pro 6 を使用しています。

フォローアップ: スピン ベクトルのペアから計算された 2 つの点の線形中点を取得し、その点を単位球に投影することができるはずだと直感的に思われます。たとえば、以下のリンクにある式は、任意の 2 つの 3D 点の間の中点を計算する式を示しています。次に、その 3D ポイントを取得し、いくつかの式を使用して、単位球の表面に投影するように XYZ 座標を調整できませんか?

2点間の点の座標を見つける?

4

1 に答える 1

2

M と N を 2 点、O を原点とします。MN セグメントの中央にある P を見つけます: OP = OM + ON / 2. OP の大きさを計算します: |OP|。必要なポイントは、OR = OP / |OP| の R になります。= OM + オン / 2|OP|.

これを計算して頑張ってください。Delphi についてはわかりませんが、ベクトルの直接操作が可能かもしれません。そうでない場合は、解析ジオメトリを使用してください。

中間点の座標は、M と N の座標の算術平均です (それらを計算できると言っていました)。|OP| の大きさを取得するには x^2+y^2+z^2 の平方根を抽出します。R を取得するには、P の座標を今計算した大きさで割るだけです。

M と N が反対の場合 (P==O) は、別々に処理します。

于 2010-10-05T14:48:16.433 に答える