Усреднение поворотов с помощью углов Эйлера или матриц вращения

Я работаю над небольшим приложением, которое управляет вращением панорамы кубической карты с помощью гироскопа мобильного устройства или планшета. У меня, наконец, это работает, хотя и грубо. Мое решение заключалось в преобразовании углов Эйлера, поступающих от гироскопа, в матрицы вращения и пропускании этих матриц через различные матрицы модификации.

Теперь, когда у меня это работает, я хочу сгладить анимацию. Я подумал, что было бы лучше собрать данные о вращении в массив, а затем взять их среднее значение. Однако я совершенно не уверен, как это сделать.

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

Любая помощь будет здорово. Спасибо!


person Octothorpe    schedule 10.06.2014    source источник


Ответы (1)


Могу ли я усреднить матрицы вращения или сами углы Эйлера?

Неа.

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

Да, для интерполяции/экстраполяции подходят только кватернионы. См. 45:05 здесь (Дэвид Сакс, Google Tech Talk).

Я не делал сглаживания, подобные тому, которое вы ищете, но в любом случае подходят только кватернионы.

Quaternion Slerps обычно используются для построения плавных анимационных кривых...

Из Википедии, Slerp.

person Ali    schedule 10.06.2014
comment
Итак, мой обходной путь в комментарии выше вообще не работал выше примерно 3-5 образцов. Я изучаю возможности slerping или нахожу способ усреднить кватернионы. - person Octothorpe; 08.07.2014
comment
@Octothorpe Надеюсь, на этот раз тебе повезет больше! - person Ali; 08.07.2014