問題があります。解決策が正しいかどうか教えてください。
位置 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 を試してみましたが、わずかに異なる結果が得られましたが、それでも常に共線的であるとは限りません。
ありがとうございました