Добавлена вводная статья по версорам в документации

This commit is contained in:
Andrey Pokidov 2024-11-23 04:04:29 +07:00
parent 3932f83720
commit 5c80084b1e
3 changed files with 112 additions and 2 deletions

View file

@ -21,10 +21,10 @@ bg_fp64_matrix3x3_subtract.
Поэтому в библиотеке есть два префикса типа:
* **FP32** - означает **F**loating **P**oint **32** bit, то есть, число с
плавающей запятой, 32 бита, что соответствует типу float языка Си.
плавающей запятой, 32 бита, что соответствует типу **float** языка Си.
* **FP64** - означает **F**loating **P**oint **64** bit, то есть, число с
плавающей запятой, 64 бита, что соответствует типу double языка Си.
плавающей запятой, 64 бита, что соответствует типу **double** языка Си.
Типы структур, использующие тип **float** имеют префикс типа в виде **FP32**:
BgFP32Vector3, BgFP32Matrix3x2, BgFP32Quaternion

55
docs/russian/Versor.txt Normal file
View file

@ -0,0 +1,55 @@
# Версоры
Кватернионы - это гиперкомплексные числа, у которых имеется одна вещественная
компонента и три комплексных компоненты.
Кватернион можно рассмотреть как четырёхмерный вектор:
1. сложение и вычитание кватернионов точно такое же, как и у обычных четрыхмерных
векторов в евклидовом пространстве;
2. кватернионы точно также как и четрыхмерные векторы могут быть умножены или
разделены на число;
3. модуль кватерниона вычисляется точно также как модуль вектора в четырёхмерном
евклидовом пространстве;
4. а умножение кватернионов можно представить как произведение матрицы 4x4 на
четырёхмерный вектор.
Кватернион имеет четыре степени свободы. Но если ввести ограничение в виде
требования, чтобы модуль этого кватерниона был равен единице, то такое множество
кватернионов будет иметь только три степени свободы.
Эти кватернионы представляют собой сферу радиуса 1 в четырёхмерном пространстве.
"Поверхность" этой сферы имеет размерность равную трём.
Кватернионы единичной длины очень хорошо описывают повороты в трёхмерном
пространстве. И это логично, потому что повороты в трёхмерном пространстве имеют
три степени свободы, точно также как и сфера в четырёхмерном пространстве
Для кватерниона единичной длины существует специальное название: версор.
Версоры - это кватернионы единичной длины.
## Версоры в библиотеке
Библиотека имеет отдельную реализацию для версоров в виде специальных структур и
набора функций, которые поддерживают модуль версоров близким к единице.
Для описания версора имеется две структуры: **BgFP32Versor** и **BgFP64Versor**:
typedef struct {
const float s0, x1, x2, x3;
} BgFP32Versor;
typedef struct {
const double s0, x1, x2, x3;
} BgFP64Versor;
Поля намеренно объявлены констрантными (const), чтобы у разработчика,
использующего данные структуры, не было соблазна изменять значения полей
напрямую.
С данными структурами лучше использовать специальные функции, которые позволяют
устанавливать новые значения в поля структур **BgFP32Versor** и
**BgFP64Versor**.