Это может быть больше математический вопрос, но он специфичен для авиации, так что вот:
При заданном направлении отправления и направлении назначения (направление отправления — это направление, по которому вы уже летите, а направление назначения — это направление, на которое вы хотите повернуть), каковы формулы для степеней разделения между этими двумя направлениями для левого или правый поворот?
Итак, если вы направляетесь на 190 и хотите направиться на 020:
Формула левого поворота должна выдавать 170 градусов.
Формула правого поворота должна выдавать 190 градусов.
Догадаться.
Левый поворот: [исходный hdg] - [целевой hdg] (если меньше 0, добавить 360)
Правый поворот: [destination hdg] - [origin hdg] (если меньше 0, добавить 360)
Редактировать: для острого угла между двумя заголовками вы просто берете меньшее число между этими двумя значениями. Нет другой формулы. Об этом говорится в этом сообщении SO.
Кстати, это не очень полезно для обычных пилотов, потому что вы можете просто визуализировать розу ветров и довольно легко вычислить различные углы, но я делаю программу, которая значительно облегчит полет в режиме ожидания. Вы вводите курс входящего участка (не радиальный), ветер (направление, скорость), свою истинную воздушную скорость и делаете ли вы левый или правый поворот. Программа вычисляет, на какой курс вам следует повернуть на участке исходящего рейса, и на какой курс вы должны затем повернуть на входящем участке (при условии, что разворот осуществляется по стандартной ставке). Это также дает вам время, чтобы пролететь на обратном отрезке после того, как вы достигнете курса на этот отрезок. Он даже учитывает повороты из/в разные углы краба (что делает повороты более или менее 180 градусов).
(Dest) - (Orig) = градусы поворота
(Dest) - (Orig) + 360 = градусы поворота
(Orig) - (Dest) = градусы поворота
(Исходное) - (Цель) + 360 = Повернуть на градусы
Меня интересует ваш конечный продукт для шаблона удержания. Пожалуйста, поделитесь!
В логике программиста вы должны использовать оператор по модулю ( %
в большинстве языков)
Левый поворот:
((Origin - Destination) + 360) % 360
Правый поворот:((Destination - Origin) + 360) % 360
Пример:
((190 - 20) + 360) % 360 == 170 degree turn to the left.
((20 - 190) + 360) % 360 == 190 degree turn to the right
%
это значит что-то другое, чем "за сотню"
Рон Бейер
Уэйн Конрад
Мурей Тасрок
минут