Що таке кватерніон - пояснення людською мовою - блог євгенія Жирнова

Для закінчили ВНЗ дане питання не викликає особливих проблем, а для нас, учнів ПТУ і технікумів, це таємниця за сімома замками. Особливо якщо ви, як і я, постійно прогулювали вищу математику.

Постараюся пояснити своїми словами, що таке кватерніон в графічному движку Ogre3d: це вектор напрямку об'єкта плюс його крен уздовж цього напрямку. Виражається кватерніон через жопу, тому дивлячись на чотири цифри ви не зможете сказати куди саме спрямований об'єкт і на скільки він нахилився, на відміну від вектора. З цим доведеться миритися.

Ось в принципі і вся лекція. )

UPD: Перепрошую, що ввів Новомосковсктелей в оману. Кватерніон - це вісь, щодо якої будемо обертати об'єкт і кут, на який ми будемо обертати об'єкт щодо цієї осі. Всього у кватерниона чотири компоненти: X, Y, Z і W. XYZ - та сама вісь повороту (нормалізуємо і кожен компонент множимо на синус половини кута), W - кут повороту (який задається через косинус половини кута).

Псевдокод отримання кватерниона з кута і осі:

def quatFromAngleAxis (self, a, x, y, z): # Довжина вектора xyz l = sqrt (x ^ x + y ^ y + z ^ z) # Нормалізуємо вектор xyz x = x / ly = y / lz = z / l # Синус половини кута (a - кут в радіанах) hSin = sin (a / 2) # Заповнюємо xyz self.x = x * hSin self.y = y * hSin self.z = z * hSin # Косинус половини кута hCos = cos (a / 2) # Заповнюємо w self.w = hCos

Важливо пам'ятати, що кватерніон не ставить результат, через нього виражається дію, яке можна застосувати до будь-якого об'єкта в просторі.

Якщо вас приводить в подив термін «матриця», рекомендую почитати замітку: Що таке матриця 4 × 4 в тривимірних іграх?