# Кватернионы
[English version / Английская версия](quaternion-eng.md)
Кватернионы — это гиперкомплексные числа, которые расширяют понятие комплексных
чисел. Они состоят из одной действительной компоненты и трёх мнимых компонент:
q = s + ix + jy + kz
где:
- s, x, y, z ∈ R - действительные числа
- i, j, k - мнимые единицы, удовлетворяющие следующим условиям:
- i2 = j2 = k2 = ijk = -1
Кватернионы были открыты математиком Уильямом Гамильтоном и представлены публике
в 1843 году. Они нашли широкое применение в компьютерной графике, робототехнике
и физике для описания поворотов в трёхмерном пространстве.
## Реализация кватернионов в библиотеке
В библиотеке есть два типа трёхмерных векторов:
- **BGC_FP32_Quaternion** - кватернион на основе чисел с плавающей запятой
одинарной точности
- **BGC_FP64_Quaternion** - кватернион на основе чисел с плавающей запятой
двойной точности
Определения структур:
```c
typedef struct {
float s, x, y, z;
} BGC_FP32_Quaternion;
typedef struct {
double s, x, y, z;
} BGC_FP64_Quaternion;
```
Поля:
- **s** - это вещественная часть кватерниона, буква выбрана от английского слова
scalar - скалярная величина.
- **x**, **y**, **z** - мнимые компоненты кватерниона.
[Документация](intro-rus.md)