基于三个其他点的已知差异确定一个点的坐标

时间:2010-03-24 11:16:03

标签: algorithm geometry triangulation

我在飞机上有三个坐标。我们称它们为X1,Y1,X2,Y2,X3 Y3。

我需要计算X4,Y4,但我知道的是:

X1,Y1与X4,Y4的距离为350个单位 X2,Y2距离X4,Y4的距离为200个单位 X3,Y3与X4,Y4的距离为50个单位

我知道X1,Y1,X2,Y2和X3,Y3的精确值

如何确定X4,Y4的确切位置?

2 个答案:

答案 0 :(得分:6)

(x - x1)^2 + (y - y1)^2 = r1^2  ------ p
(x - x2)^2 + (y - y2)^2 = r2^2  ------ q
(x - x3)^2 + (y - y3)^2 = r3^2  ------ r

解决这3个圆的交点。

 p - q     ----- l 
 p - r     ----- n

使用Cramer's rule求解方程(l)和(n)。

GET_POINT(x1,y1,r1,x2,y2,r2,x3,y3,r3):
    A = x1 - x2
    B = y1 - y2
    D = x1 - x3
    E = y1 - y3

    T = (r1*r1 - x1*x1 - y1*y1)
    C = (r2*r2 - x2*x2 - y2*y2) - T
    F = (r3*r3 - x3*x3 - y3*y3) - T

    A x + B y = C/2  // this is equation 'l'
    D x + E y = F/2  // this is equation 'n'

    // Cramer's Rule

    Mx = (C E  - B F) /2
    My = (A F  - D C) /2
    M  = AE - DB

    x = Mx/M
    y = My/M

    return (x,y)

答案 1 :(得分:2)

你的帖子只标记为“几何”。

问题的几何解决方案是在(x1,y1),(x2,y2)和(x3,y3)周围绘制圆圈,并将相应的距离(x4,y4)作为半径。 (x4,y4)是所有圆相交的点。