1

2 つの球 A と B の中心 (xyz - 3 次元空間) と半径があります。

ここで、これらの球が交わる 1 つまたは複数の点を見つけなければなりません。2 つの球が衝突するかどうかを判断するのはかなり簡単ですが、どうすれば 2 つの球の交点を見つけることができますか?

どんな助けでも大歓迎です。

4

2 に答える 2

2

小さい方の球の半径が A で、大きい方の球が B で、それらの中心が D 単位離れている場合、交点は、2 つの球の中心の間の点を中心とする半径 r の円上にあります。は、大きい方の球の中心から y 単位、もう一方の球の中心から x 単位です。

y = 1/2 (D + (B^2 - A^2)/D)

x = 1/2 (D - (B^2 - A^2)/D)

半径付き

r = B^2 - x^2 = A^2 - y^2

この円の方程式が必要な場合、最良の方法は、パラメータ化された 3 つの方程式のセットとして表すことです。ここで、x、y、および z 座標はそれぞれ、円の周りを移動する半径ベクトルを表す t の関数として表されます。一度、ゼロから2PIまで...

これらの方程式を作成するには、2 つの球の間の線に垂直な 2D 平面上で、中心から半径 r の点を表すことを考えてください。

これを行う方法については、このリンクを参照してください。

導出は次のとおりです。2 つの球の中心間に線を引きます。それを D とラベル
付けする この線上の点を最終的な解の円の中心として指定し、点 O と
ラベル付けする D の小さい部分を x としてラベル付けし、大きな部分を y として
ラベル付けし、O から D に垂直にある距離の線を引くr は解の円の半径を表し
ます この半径の端を Q とラベル付けします 次に、B を Q までの大きな球の中心と、小さい球の中心と Q から A の間に描きます

ピタゴラスから:
B^2 = y^2 + r^2 および A^2 = x^2 + r^2
なので、r と少しの代数を削除した後、
yx = (B^2 - A*2) / ( x+y)
しかし x+y = D なので、

yx = (B^2 - A*2) / D

上記に式 x+y=D を追加すると、x が消去され、次のようになります。

2y = D + (B^2 - A*2) / D
または、

y = 1/2 (  D  + (B^2 - A*2) / D  )
于 2011-02-19T04:20:07.873 に答える
2

それらが交差する曲線は円です。円の半径の方程式は少し複雑ですが、ここの eqn に示されています。球の1つの中心からの円のこの距離は、式8に示されている。5.

于 2011-02-19T05:18:58.490 に答える