bgc-c/docs/russian/Angle.md

51 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Углы
В библиотеке нет специальных структур для представления уголов. Функции
библиотеки работают с углами как с обычными числами с плавающей запятой
типов **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 для знакового диапазона значений.