bgc-c/docs/versor-rus.md

3.1 KiB
Raw Blame History

Версоры

Кватернионы - это гиперкомплексные числа, у которых имеется одна действительная компонента и три комплексных компоненты:

Определение кватерниона

Кватернион имеет четыре степени свободы. Но если ввести ограничение в виде требования, чтобы модуль этого кватерниона был равен единице, то такое множество кватернионов будет иметь только три степени свободы.

Эти кватернионы представляют собой сферу радиуса 1 в четырёхмерном пространстве. "Поверхность" этой сферы имеет размерность равную трём.

Кватернионы единичной длины очень хорошо описывают повороты в трёхмерном пространстве. Вращения в трёхмерном пространстве имеют три степени свободы, что совпадает с размерностю поверхности сферы в четырёхмерном пространстве.

Для кватерниона единичной длины существует специальное название: версор.

Версоры - это кватернионы единичной длины. К определению кватерниона необходимо просто добавить одно уравнение:

Определение версора

Версоры в библиотеке

Библиотека имеет отдельную реализацию для версоров в виде специальных структур и набора функций, которые поддерживают модуль версоров близким к единице.

Для описания версора имеется две структуры:

typedef struct {
    const float s0, x1, x2, x3;
} BgFP32Versor;

typedef struct {
    const double s0, x1, x2, x3;
} BgFP64Versor;

Поля структур намеренно объявлены констрантными (const), чтобы побудить разработчика использовать функции работы с версорами, вместо того, чтобы непосредственно задавать значения полей. Функции работы с версорами поддерживают модуль версора равным единицы.

С данными структурами лучше использовать специальные функции, которые позволяют устанавливать новые значения в поля структур BgFP32Versor и BgFP64Versor.