bgc-c/docs/angle-rus.md

2.6 KiB
Raw Blame History

Углы

В библиотеке нет специальных структур для представления уголов. Функции библиотеки работают с углами как с обычными числами с плавающей запятой типов float и double.

В библиотеке есть три единицы измерения уголов:

  • радианы (полный оборот равен 2π радиан)
  • градусы (полный оборот равен 360 градусов)
  • обороты (полный оборот равен 1)

Единицы измерения углов определены в перечилении:

    typedef enum {
        BGC_ANGLE_UNIT_RADIANS = 1,
        BGC_ANGLE_UNIT_DEGREES = 2,
        BGC_ANGLE_UNIT_TURNS   = 3
    } BgcAngleUnitEnum;
  • BGC_ANGLE_UNIT_RADIANS для уголов, измеряемых в радианах
  • BGC_ANGLE_UNIT_DEGREES для уголов, измеряемых в градусах
  • BGC_ANGLE_UNIT_TURNS для уголов, измеряемых в оборотах

Функции, которые принимают угол в качестве параметра, не требуют, чтобы угол принадлежал какому-либо промежутку значений. Но в библиотеке есть функции, которые могут нормализовать угол так, чтобы он находился в нужном промежутке значений.

Есть два промежутка нормализованных уголов: знаковый (singed) и беззнаковый (unsigned).

Беззнаковый диапазон не содержит отрицательных значений и соответствует:

  • [0, 2π) радиан
  • [0, 360) градусов
  • [0, 1) оборотов

Знаковый диапазон содержит как отрицательные, так и положительные значения. Знаковый диапазон соответствует:

  • (-π, π] радиан
  • (-180, 180] градусов
  • (-0,5, 0,5] оборотов

Диапазоны значений определены перечиляемым типом:

    typedef enum {
        BGC_ANGLE_RANGE_UNSIGNED = 1,
        BGC_ANGLE_RANGE_SIGNED = 2
    } BgcAngleRangeEnum;
  • BGC_ANGLE_RANGE_UNSIGNED для беззнакового диапазона значений;
  • BGC_ANGLE_RANGE_SIGNED для знакового диапазона значений.

Назад