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