Дополнительное образование

Как найти угол между двумя точками по их координатам

Как найти угол между прямой с двумя точками и лучём идущим из первой точки прямо на север (на верх) если известны координаты точек.

Возможно звучит не понятно, поэтому приложил картинку.
Чтобы найти угол между прямой, заданной двумя точками, и лучом, направленным из первой точки прямо на север (вверх), можно использовать тангенс угла наклона прямой. Для этого нужно вычислить разность координат между двумя точками, а затем применить обратный тангенс (арктангенс) к отношению вертикальной разности к горизонтальной разности.

Вот как это можно сделать на практике, используя язык программирования Python:

import math

def find_angle(x1, y1, x2, y2):
delta_x = x2 - x1
delta_y = y2 - y1
angle_rad = math.atan2(delta_y, delta_x)
angle_deg = math.degrees(angle_rad)
return angle_deg

# Пример использования
x1, y1 = 1, 2
x2, y2 = 3, 4
angle = find_angle(x1, y1, x2, y2)
angle_with_north = 90 - angle
print("Угол между прямой и лучом: ", angle_with_north)


В этом примере мы использовали функцию find_angle из предыдущего ответа для вычисления угла наклона прямой между точками (x1, y1) и (x2, y2). Затем мы вычислили угол севера относительно этой прямой, вычтя полученный угол из 90 градусов.

Для нашего примера с координатами (1, 2) и (3, 4) мы получим угол между прямой и лучом равным 90 - 45.0 = 45.0 градусов.
Serega _Sw
Serega _Sw
199
Лучший ответ
Валентин Довгалюк Ого, мне это как раз для программы на питоне нужно было, спасибо большое
Решать не буду. Опишу ход решения.
  1. Из т.2 опусти перпендикуляр на луч. Обозначь: А -т.1; В-т. 2; С- основание перпендикуляра на луче. Получился прямоугольный тр-к
  2. АВС, в котором угол С -прямой по построению.
  3. Противоположный катет ВС=Х2-Х1; АВ=У2-У1;
  4. tgA=(Х2-Х1)/(У2-У1); A=arctgA