Координаты 3-й точки в треугольнике

Дано:

Point A (a1,b1)
Point B (a2,b2)
Distance between A and B
Distance between A and C
Angle between AB and AC = 90deg

Должен найти:C(a3,b3)

У меня есть координаты 2 точек A(x,y) и B(p,q), но я хочу найти координаты третьей точки C(m,n).
Я знаю расстояние между A и B, A и C и угол между A и C, который составляет 90 градусов.
Я знаю, что это простая теорема Пифагора. Но как мне реализовать это в php и какой будет формула?

1 ответ

Решение

Позволять $x,$y а также $p,$q быть заданными координатами A и B, кроме того, позвоните $d известное расстояние между А и С и $d0 известное расстояние между A и B. Путем небольшой математики вы получите следующие формулы (здесь я непосредственно реализую это в PHP):

$m = $x + ($q - $y) * $d / $d0;
$n = $y - ($p - $x) * $d / $d0;

Есть и второе решение:

$m = $x - ($q - $y) * $d / $d0;
$n = $y + ($p - $x) * $d / $d0;

РЕДАКТИРОВАТЬ: Вот как я получил уравнения: я повернул вектор AB, который имеет координаты ($p - $x, $q - $y)на 90 градусов получить ($q - $y, -($p - $x)) а также (-($q - $y), $p - $x) (в зависимости от того, по часовой стрелке или против часовой стрелки), а затем получил вектор AC, масштабируя его с $d / $d0 (соотношение их длин). Теперь я просто перевел вектор ($x, $y) получить ($m, $n),

Может быть, это может быть реализовано более элегантно, используя векторный класс в PHP или даже целую библиотеку, но я думаю, что для этого простого вычисления гораздо проще реализовать его "вручную".

Другие вопросы по тегам