Написание документации: кватернионы и версоры

This commit is contained in:
Andrey Pokidov 2024-11-25 01:57:35 +07:00
parent 5c80084b1e
commit 3ff894cf5d
21 changed files with 114 additions and 18 deletions

View file

@ -1,51 +0,0 @@
# Углы
В библиотеке нет специальных структур для представления уголов. Функции
библиотеки работают с углами как с обычными числами с плавающей запятой
типов **float** и **double**.
В библиотеке есть три единицы измерения уголов:
* радианы (полный оборот равен 2π радиан)
* градусы (полный оборот равен 360 градусов)
* обороты (полный оборот равен 1)
Единицы измерения углов определены в перечилении:
typedef enum {
BG_ANGLE_UNIT_RADIANS = 1,
BG_ANGLE_UNIT_DEGREES = 2,
BG_ANGLE_UNIT_TURNS = 3
} angle_unit_t;
* BG_ANGLE_UNIT_RADIANS для уголов, измеряемых в радианах
* BG_ANGLE_UNIT_DEGREES для уголов, измеряемых в градусах
* BG_ANGLE_UNIT_TURNS для уголов, измеряемых в оборотах
Функции, которые принимают угол в качестве параметра, не требуют, чтобы
угол принадлежал какому-либо промежутку значений. Но в библиотеке есть
функции, которые могут нормализовать угол так, чтобы он находился в
нужном промежутке значений.
Есть два промежутка нормализованных уголов: знаковый (singed) и беззнаковый
(unsigned).
Беззнаковый диапазон не содержит отрицательных значений и соответствует:
* [0, 2π) радиан
* [0, 360) градусов
* [0, 1) оборотов
Знаковый диапазон содержит как отрицательные, так и положительные значения.
Знаковый диапазон соответствует:
* (-π, π] радиан
* (-180, 180] градусов
* (-0,5, 0,5] оборотов
Диапазоны значений определены перечиляемым типом:
typedef enum {
BG_ANGLE_RANGE_UNSIGNED = 1,
BG_ANGLE_RANGE_SIGNED = 2
} angle_range_t;
* BG_ANGLE_RANGE_UNSIGNED для беззнакового диапазона значений;
* BG_ANGLE_RANGE_SIGNED для знакового диапазона значений.