Построение интуитивного графика углов
Я пытаюсь построить заголовок объекта. У меня есть четыре вектора точек - назовем их
mdex
mdey
(акаx1,y1
),thpx
thpy
(акаx2,y2
).
Я нахожу изменения в y
и изменение в x
(dy
а также dx
), а затем введите это в atan2d
функция. Затем я просматриваю результаты и строю их на графике.
Шкала на графике идет от -180 до 180. Моя проблема возникает, когда линия проходит через -180 или 180 градусов. Затем он "всплывает" на противоположную сторону графика (то есть то, что было бы 181, на самом деле -179).
Это проблематично, потому что это выглядит так, как будто бы есть огромные сдвиги в углу, когда на самом деле их нет - это просто "переворачивание". Кроме того, это искажает мои расчеты угловой скорости, которые основаны на том, как много изменилось между точками. Первоначально я просто попытался преобразовать график в масштаб 0-360, добавив 180 ко всем значениям, которые были ниже 0. Это не сработало.
Вот график, чтобы вы могли лучше понять проблему (график после того, как я попробовал преобразование 0-360).
Мой вопрос
Мне интересно, есть ли другая функция, которую я могу использовать, чтобы вычислить угол, который дал бы мне значение, которое постоянно увеличивается, способ изменить данные так, чтобы они хорошо отображались, или способ изменить график, чтобы он выглядел интуитивно понятным?
Заранее спасибо!
1 ответ
Использование unwrap
удалить нежелательные прыжки. Аргумент должен быть в радианах:
>> ang = [150 160 170 180 -170 -160] %// undesired jump from 180 to -180
ang =
150 160 170 180 -170 -160
>> 180/pi * unwrap(ang * pi/180)
ans =
150 160 170 180 190 200