Описания углов и небольшие правки в библиотеке

This commit is contained in:
Andrey Pokidov 2024-11-23 00:34:35 +07:00
parent aa581a9b2b
commit eaf12b0a08
13 changed files with 120 additions and 22 deletions

47
docs/russian/Angle.md Normal file
View file

@ -0,0 +1,47 @@
# Углы
В библиотеке нет специальных структур для представления уголов. Функции
библиотеки работают с углами как с обычными числами с плавающей запятой
типов **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;
Функции, которые принимают угол в качестве параметра, не требуют, чтобы
угол принадлежал какому-либо промежутку значений. Но в библиотеке есть
функции, которые могут нормализовать угол так, чтобы он находился в
нужном промежутке значений.
Есть два промежутка нормализованных уголов: знаковый (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 для знакового диапазона значений.