Построение интуитивного графика углов

Я пытаюсь построить заголовок объекта. У меня есть четыре вектора точек - назовем их

  • 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
Другие вопросы по тегам