Трилатерация

Этот онлайн калькулятор решает задачу трилатерации - определения координат точки по расстоянию от этой точки до трех других точек с известными координатами.

Результатом решения задачи может быть один из трех вариантов:

  1. Не существует ни одной точки, расстояния от которой до трех других соответствуют заданным
  2. Существует ровно одна точка, расстояния от которой до трех других соответствуют заданным
  3. Существует две точки, расстояния от которых до трех других соответствуют заданным

Формулы расчета и иллюстрации для каждого случая приведены под калькулятором.

PLANETCALC, Трилатерация

Трилатерация

Результат
 
Решение
 
Знаков после запятой: 2

Трилатерация

Геометрическим местом точек, лежащих на заданном расстоянии r от точки с координатами (x, y, z) является поверхность сферы радиуса r с центром в точке (x, y, z). Таким образом с точки зрения геометрии проблема трилатерации заключается в нахождении координат пересечения трех сфер. Эти координаты находятся путем решения системы уравнений, построенных на следующих рассуждениях1.
Каждая пара сфер пересекается по окружности. Центр ее находится на прямой, соединяющей центры сфер. Сама окружность лежит в плоскости, перпендикулярной данной прямой. Рассмотрим три сферы: сферу 1 с радиусом r1 c центром в точке O1(x1, y1, z1), сферу 2 с радиусом r2 c центром в точке O2(x2, y2, z2) и сферу 3 с радиусом r3 c центром в точке O3(x3, y3, z3).
Уравнение плоскости, в которой лежит окружность, образованная пересечением сфер 1 и 2 выглядит следующим образом:
(x_2-x_1)x+(y_2-y_1)y+(z_2-z_1)z=\frac{1}{2}(x_2^2-x_1^2+y_2^2-y_1^2+z_2^2-z_1^2+r_1^2-r_2^2)
Уравнение плоскости, в которой лежит окружность, образованная пересечением сфер 1 и 3 выглядит следующим образом:
(x_3-x_1)x+(y_3-y_1)y+(z_3-z_1)z=\frac{1}{2}(x_3^2-x_1^2+y_3^2-y_1^2+z_3^2-z_1^2+r_1^2-r_3^2)
Уравнение плоскости треугольника, образованного центрами сфер:
((y_{3}-y_{1})(z_{2}-z_{1})-(y_{2}-y_{1})(z_{3}-z_{1}))(x-x_{1})+((z_{3}-z_{1})(x_{2}-x_{1})-(z_{2}-z_{1})(x_{3}-x_{1}))(y-y_{1})+((x_{3}-x_{1})(y_{2}-y_{1})-(x_{2}-x_{1})(y_{3}-y_{1}))(z-z_{1})=0
Пересечение двух первых плоскостей дает прямую, перпендикулярную последней плоскости. Пересечение этой прямой с плоскостью треугольника - перпендикуляр из искомой точки пересечения сфер на плоскость треугольника, образованного центрами сфер. Эта точка пересечения принадлежит всем трем плоскостям, и ее координаты являются решением системы трех линейных алгебраических уравнений, приведенных выше.

Решив эту систему, получаем координаты точки O (x0, y0, z0).
Тогда координаты точки пересечения трех сфер определяются следующими формулами:

{\displaystyle {\begin{cases}x=x_{0}+k((y_{3}-y_{1})(z_{2}-z_{1})-(y_{2}-y_{1})(z_{3}-z_{1}))\\y=y_{0}+k((z_{3}-z_{1})(x_{2}-x_{1})-(z_{2}-z_{1})(x_{3}-x_{1}))\\z=z_{0}+k((x_{3}-x_{1})(y_{2}-y_{1})-(x_{2}-x_{1})(y_{3}-y_{1}))\\k=\pm {\frac {\sqrt {r_{1}^{2}-|OO_{1}|^{2}}}{2S_{O_{1}O_{2}O_{3}}}}\\\end{cases}}}

Выражение для расчета k определяет количество решений. Если разность под квадратным корнем положительная, то мы имеем два решения (+k, -k) - две точки пересечения трех сфер, проиллюстрированных картинкой ниже

Пример двух пересечений
Пример двух пересечений



Если разность под корнем равна нулю, то мы имеем в точности одну точку пересечения двух сфер:

Пример одного пересечения
Пример одного пересечения



И наконец, если выражение под корнем отрицательное, то решений нет - сферы не пересекаются

Пример отсутствия пересечений
Пример отсутствия пересечений

Ссылка скопирована в буфер обмена
PLANETCALC, Трилатерация

Комментарии