0

{X1、Y1、Z1} と {X2、Y2、Z2} の 2 つの既知の点の間にある 3D に存在する線があります。

また、私は点の 1 つから一定の距離にあることも知っています: D

D を {X1, Y1, Z1} から移動した後のポイントの座標を特定するにはどうすればよいですか?

ありがとう

4

4 に答える 4

4

距離 D をポイント 1 からポイント 2 に移動するとします。

P1 = [ X1, Y1, Z1 ]
P2 = [ X2, Y2, Z2 ]

行ベクトルは次のように記述できます。

V = P2 - P1 = [ Xv = X2 - X1, Yv = Y2 - Y1, Zv = Z2 - Z1 ]

線の長さは次のように決定できます。

VL = SQRT(Xv^2 + Yv^2 + Zv^2)     // ^2 = squared

ラインのバージョン別名単位ベクトルは、次のように決定できます。

v = V / VL = [Xv / VL, Yv / VL, Zv / VL]

ターゲット ポイント PD は次のように決定できます。

Pd = P1 + D * v // Starting from P1 advance D times v

P1 と v はベクトルで、D はスカラーであることに注意してください。

于 2009-09-17T05:05:38.193 に答える
1

まず、線分の長さを決定します。

d=sqrt((X1-X2)^2+(Y1-Y2)^2+(Z1-Z2)^2))

D を P1=(X1,Y1,Z1) から P2=(X2,Y2,Z2) に移動しています。これにより、ポイント (X3,Y3,Z3) に移動します。

{XYZ}3={XYZ}1+(D/d)*({XYZ}2-{XYZ}1})

それを X、Y、Z のそれぞれに 1 つずつ、3 つの方程式に展開します。

これは、P1 と P2 の間の D/D であるため機能します。チェック: D=d と言います。次に、正確に P​​2 にいる必要があります。

于 2009-09-17T04:41:02.767 に答える
0

2点間のベクトルを取る

<X2-X1, Y2-Y1, Z2-Z1>

これを、同じ方向を指すが長さ 1 の単位ベクトルに変換します。これは、2 点間の距離で割ることによって行います。

         <X2-X1, Y2-Y1, Z2-Z1>
---------------------------------------
sqrt((X2-X1)^2 + (Y2-Y1)^2 + (Z2-Z1)^2)

次に、それを D 倍し、元のポイントに加算して新しいポイントを取得します。

                            <X2-X1, Y2-Y1, Z2-Z1>
(X1, Y1, Z1) + D * ---------------------------------------
                   sqrt((X2-X1)^2 + (Y2-Y1)^2 + (Z2-Z1)^2)
于 2009-09-17T04:44:06.483 に答える