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

Однако непосредственное использование такого представления (как и применение углов Эйлера) для работы с ориентациями в трехмерном пространстве (что постоянно возникает в задаче анимации) весьма затруднительно. Для этого обычно используют весьма простой и элегантный подход, основанный на использовании так называемых кватернионов.

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

Кватернионы впервые были введены еще в 1843 г. Гамильтоном как расширение комплексных чисел, но впервые были использованы в компьютерной графике только в 1985 г.

(1.40)

Кватернионы

Кватернион определяется как четырехмерный вектор (и\ х, у, г), где все компоненты являются вещественными числами. Иногда по аналогии с комплексными числами для кватернионов используется следующая запись: д=к+х1 +у] + ?М 1 (1-41)

где 1,7, к - мнимые единицы, удовлетворяющие следующим соотношениям:

',-;'-*'=-'; (1.42, у = -}\ = к, у* = -к/ = /', */' = = }.

Вектор XI + у) + гк называется мнимой частью кватерниона, а и> - его действительной частью.

Сложение и вычитание кватернионов определяются покомпонентно: Я1+Яг =(п1+хг1 + у1) + г1к) + (н>г+хг1 + уг] + ггк)= ^ = (н>1 + н>2)+(х1+х1)1+(у1+уг)]+(г1 + гг)к.

Умножение кватернионов можно определить, исходя из формул (1.40), следующим образом: ЯМ = К + Ч + + г,*)(и'2 + лс,« + уг] + г2*) = = (п1пг-х1хг-у1уг-г&)+( н>1Хг + н>гх1 + у1гг-ул)1+ (1.44) +(и',)'2 + н>гУ1 +*2г,-х1гг)) + (н>1г1 + +х1у1 -хгУ1 )к.

Обратите внимание, что умножение кватернионов некоммутативно, т. е. в общем случае <7,<72 * цгц (это следует из соотношений (1.40).


⇐ Предыдущая| |Следующая ⇒