Как найти координаты 3 точки?
Точка | X | Y | Z |
---|---|---|---|
A | 1 | 1 | 0 |
B | 8.05 | 8.1 | 0 |
C | ? | ? | ? |
Расстояние от A до B — 10
Расстояние от B до C — 4
Как найти координаты точки С ?
Точка | X | Y | Z |
---|---|---|---|
A | 1 | 1 | 0 |
B | 8.05 | 8.1 | 0 |
C | ? | ? | ? |
Расстояние от A до B — 10
Расстояние от B до C — 4
Как найти координаты точки С ?
Пользуемся теоремой Фалеса и всё: (10.87, 10.94, 0)
var a = [1, 1, 0]
var b = [8.05, 8.1, 0]
var c = a.map((_, i) => b[i] + (b[i] - a[i]) / 10 * 4)
console.log(c)
Расстояние между точками в трёхмерной плоскости выражается через:
d = √((x₂ - x₁)² + (y₂ - y₁)² + (z₂ - z₁)²)
где d
— расстояние между точками, (x₁, y₁, z₁)
— координаты первой точки, (x₂, y₂, z₂)
— координаты второй точки.
Т.к. Z для обоих точек равняется нулю, можно сократить до расположения на плоскости:
d = √((x₂ - x₁)² + (y₂ - y₁)²)
Исходя из данной формулы, мы можем рассмотреть точки A (x = 1, y = 1) и B (x = 8.05, y = 8.1) и убедиться, что расстояние между ними равно 10:
10 = √((8.05 - 1)² + (8.1 - 1)²)
Без округления 10.005623418858.
Теперь, учитывая, что расстояние между B и C равно 4, составим:
4 = √((x₃ - 8.05)² + (y₃ - 8.1)²)
Тут можно избавиться от корня возведением обеих частей в квадрат (расстояние от B до C):
16 = (x₃ - 8.05)² + (y₃ - 8.1)²
То же самое сделаем для расстояния от A до C (10+4), по итогу имеем систему из двух уравнений (расстояние в 14 тоже возводим):
196 = (x₃ - 1)² + (x₃ - 1)²
16 = (x₃ - 8.05)² + (y₃ - 8.1)²
Смотрим как решать систему из двух уравнений методом подстановки, алгебра, начальные классы.
У меня получилось:
x₃ = 11.0408335162876
y₃ = 10.7561089732637
Проверяем по формуле на нахождения расстояния (d
) для точек B и C, получится 4.
Можно придать ещё чуть больше точности, ранее высчитывал точное расстояние между A и B, тогда:
196.157487350864 = (x₃ - 1)² + (x₃ - 1)²
16 = (x₃ - 8.05)² + (y₃ - 8.1)²
x₃ = 10.8684149199199
y₃ = 10.9384040126756
В таком случае на проверке расстояние будет идеально равно 4-ем.
Но, т.к. изначальное расстояние в 10 округлено, то и ответ можно абсолютно спокойно округлить до сотых, как и в условии для координат:
x₃ = 11.04
y₃ = 10.76
z₃ = 0