Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Алгоритмы > Нахождение дирекционного угла отрезка |
Автор: Хрен 29.01.12, 23:00 |
Доброго времени суток! Собственно, вопрос уже изначально решён, и спрашиваю только чтобы быть уверенным, что он решён оптимально. Есть отрезок AB и нужно найти его дирекционный угол (угол отклонения от оси y). Я делаю так: 1. Нахожу точку C с координатами (A.x, B.y) - таким образом получаю 2 катета AC, BC. 2. Вычисляю длины катетов и нахожу отношение BC к AC. 3. Беру atan из этого отношения и перевожу его из радианов в градусы. Может есть какие-то более оптимальные способы? |
Автор: MBo 30.01.12, 01:35 |
atan2(B.y - A.y, B.x - A.x) даст угол в диапазоне -Pi..Pi по отношению к оси X P.S. Часто само значение угла не требуется, достаточно найти компоненты направляющего вектора |
Автор: amk 30.01.12, 14:17 |
Чтобы получить угол от оси Y, надо просто поменять аргументы atan2. Если угол надо откладывать против часовой стрелки, придется также поменять знак. Подозреваю, тут что-то сходное с ориентированием на местности, поэтому угол и нужен. |
Автор: Хрен 07.02.12, 11:00 |
MBo, amk Спасибо! Кстати, мой способ был рабочим только наполовину - он не различал знак угла =) Да, задача почти для ориентирования на местности - а именно вычисление дирекционного угла дороги на GPS карте =) |