Определение координат точки на основе ее известного отличия от трех других точек - PullRequest
1 голос
/ 24 марта 2010

У меня есть координаты трех точек на плоскости. Давайте назовем их X1, Y1, X2, Y2, X3 Y3.

Мне нужно вычислить X4, Y4, но все, что я знаю, это:

X1, Y1 на расстоянии 350 единиц от X4, Y4 X2, Y2 на расстоянии 200 единиц от X4, Y4 X3, Y3 на расстоянии 50 единиц от X4, Y4

Я знаю точные значения для X1, Y1, X2, Y2 и X3, Y3

Как определить точное местоположение X4, Y4?

Ответы [ 2 ]

6 голосов
/ 24 марта 2010
(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

Решите уравнения (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)
2 голосов
/ 24 марта 2010

Вы опубликовали только тег "геометрия".

Геометрическим решением вашей проблемы будет нарисовать круги вокруг (x1, y1), (x2, y2) и (x3, y3) с соответствующим расстоянием до (x4, y4) в качестве радиуса. (x4, y4) - точка пересечения всех твоих окружностей.

...