3 次元に 4 つの点 (P1、P2、P3、P4) があるとします。これらの点の座標が 5 番目の点 P5 (r1、r2、r3、r4) までのユークリッド距離で与えられている場合、P5 の座標を計算するにはどうすればよいですか?
この投稿では、Don Reba の回答が2 - D に最適です。しかし、それを 3 次元に拡張するにはどうすればよいでしょうか。
2Dのコードは次のとおりです。
static void localize(double[] P1, double[] P2, double[] P3, double r1, double r2, double r3)
{
double[] ex = normalize(difference(P2, P1));
double i = dotProduct(ex, difference(P3, P1));
double[] ey = normalize(difference(difference(P3, P1), scalarProduct(i, ex)));
double d = magnitude(difference(P2, P1));
double j = dotProduct(ey, difference(P3, P1));
double x = ((r1*r1) - (r2*r2) + (d*d)) / (2*d);
double y = (((r1*r1) - (r3*r3) + (i*i) + (j*j)) / (2*j)) - ((i*x) / j);
System.out.println(x + " " + y);
}
関数をシグネチャでオーバーロードしたい
static void localize(double[] P1, double[] P2, double[] P3, double[] P4, double r1, double r2, double r3, double r4)