Координаты точки по углу от произвольной прямой и расстоянию

Когда мы строим ломаную или кривую, иногда необходимо вместо привычных декартовых X,Y-координат задавать точку кривой через угол и расстояние. Ни в GDI, ни в GDI+, нет инструментов, чтобы задать координаты точки по углу от произвольной прямой и расстоянию.

Зато координаты можно очень легко посчитать. Вот этим сейчас и займемся. А потом найдем угол между двумя прямыми.

Найти координаты по углу и расстоянию

Если прямая, от которой необходимо отложить угол, параллельна оси X, формулы для нахождения координат достаточно очевидны.

Рис1. Прямая отстоит на угол от оси X

Latex formula

Latex formula

Где:

L — расстояние, или длина прямой (P1, P2)

А — угол, на который отстоит прямая (P1, P2) от прямой (P0, P1). Отрицательное значение угла означает — против часовой стрелки.

Теперь придадим прямой (P0, P1) наклон.

Рис.2. Прямая отстоит на угол от наклонной прямой

A (синий) — это угол, на который отстоит (P1, P2) от прямой (P0, P1);

В (красный) — угол на между прямой (P0, P1) и осью X;

C (оранжевый) — угол на между прямой (P1, P2) и осью X.

Задача сводится к нахождению угла C. Как нетрудно убедится по рисунку:

Latex formula

Угол А нам известен. Угол B найдем через arctan2. Функция arctan2 есть во множестве языков. Возможно, будет называться atan2.

Latex formula

Таким образом, функция для нахождения координат точки выглядит так:

И что, всегда работает? Всегда.

Рис.3. Это работает всегда, потому что геометрия возникла в мезозое и потому вечна

Найти угол по трем координатам

Рассмотрим процесс, обратный нахождению координаты по углу. Теперь будем находить угол между отрезками ломаной. Мы в плоскости работаем в декартовых координатах. Меняем мышкой координаты X, Y. А ситуация может возникнуть такая, что для предметной области важно хранить данные в полярных координатах.

Функция такая:

Более продвинутую функцию можно найти в статье Пересечение прямых, угол и координаты пересечения.


Друзья, спасибо за внимание!

Оставляйте комментарии. Подписывайтесь на телегу.

В группе комментариев уже потихоньку становится интересно )))

4.6 10 голоса
Рейтинг статьи
Подписаться
Уведомить о
guest

2 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии
Николай

есть местные координаты нужно найти точку отсчета на карте

2
0
Не нашли ответ на свой вопрос? Задайте его здесь!...x