3

問題があります。解決策が正しいかどうか教えてください。

位置 A(x1,y1,z1) と原点 O(0,0,0) に既知の点があり、点 B(x2,y2,z2) の座標を見つけたいと思います。線 OA であり、距離 OB は OA の 1.2 倍です。

したがって、私の考えは、点 O と A によって形成される直線の方程式を取得することです。OA の方向は (-x1、-y1、-z1) であるため、直線の方程式は次のようになります。

x = -x1*t;

y = -y1*t;

z = -z1*t;

距離 OA は sqrt( (x1-0)^2 + (y1-0)^2 + (z1-0)^2) です。既知

距離 OB は sqrt( (x2-0)^2 + (y2-0)^2 + (z2-0)^2) です。わからない

距離 OB の直線方程式に対して決定された x、y、z 点を置き換えることができ、結果は距離 OA の 1.2 倍になるはずです。

したがって、sqrt( (-x1*t-0)^2 + (-y1*t-0)^2 + (-z1*t-0)^2) = 1.2 * 距離 (OA) です。

ここから t を見つけ、二次方程式を解いて、直線の方程式の t を置き換えることで点の座標を取得します。

これは正しいです?

お時間をいただきありがとうございます。

編集:これは私のコードです:

rangeRatio = 1.114;

norm = sqrt((P2(1) - P1(1))^2 + (P2(2) - P1(2))^2 + (P2(3) - P1(3))^2);

P3(1) = P1(1) + ((P2(1,1) - P1(1)) /norm) * rangeRatio;
P3(2) = P1(2) + ((P2(1,2) - P1(2)) /norm) * rangeRatio;
P3(3) = P1(3) + ((P2(1,3) - P1(3)) /norm) * rangeRatio;

私もノルム = 1 を試してみましたが、わずかに異なる結果が得られましたが、それでも常に共線的であるとは限りません。

ありがとうございました

4

1 に答える 1

4

それはさらに簡単です。a、b、c に 1.2 を掛けるだけです。これにより、元の線の 1.2 倍のサイズの線が得られます。

于 2012-10-19T16:13:46.403 に答える