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

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

  • 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).

blah

Мой вопрос

Мне интересно, есть ли другая функция, которую я могу использовать для вычисления угла, которая даст мне значение, которое постоянно увеличивается, способ изменить данные, чтобы они отображались красиво, или способ изменить график, чтобы он выглядел интуитивно понятным. ?

Заранее спасибо!


person user3845377    schedule 16.07.2014    source источник
comment
Вы можете сделать это в виде графика полярных координат, где тета — это ваш угол, а r — ваша рамка, это устранит скачки.   -  person Dan    schedule 16.07.2014


Ответы (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
person Luis Mendo    schedule 16.07.2014