Описания углов и небольшие правки в библиотеке
This commit is contained in:
parent
aa581a9b2b
commit
eaf12b0a08
13 changed files with 120 additions and 22 deletions
47
docs/russian/Angle.md
Normal file
47
docs/russian/Angle.md
Normal 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 для знакового диапазона значений.
|
|
@ -2,7 +2,7 @@
|
|||
|
||||
Библиотека использует префиксы в названиях типов, констант и функций.
|
||||
|
||||
Основным префиксом является **BG** (сокращение от Basic Geometry / Базовая
|
||||
Основным префиксом является **BG** (сокращение от **B**asic **G**eometry / Базовая
|
||||
Геометрия).
|
||||
|
||||
Для структур данных префикс имеет вид **Bg**, например: BgFP64Vector3,
|
||||
|
@ -20,10 +20,10 @@ bg_fp64_matrix3x3_subtract.
|
|||
|
||||
Поэтому в библиотеке есть два префикса типа:
|
||||
|
||||
* **FP32** - означает **F**loating **P**oint 32 bit, то есть, число с
|
||||
* **FP32** - означает **F**loating **P**oint **32** bit, то есть, число с
|
||||
плавающей запятой, 32 бита, что соответствует типу float языка Си.
|
||||
|
||||
* **FP64** - означает **F**loating **P**oint 64 bit, то есть, число с
|
||||
* **FP64** - означает **F**loating **P**oint **64** bit, то есть, число с
|
||||
плавающей запятой, 64 бита, что соответствует типу double языка Си.
|
||||
|
||||
Типы структур, использующие тип **float** имеют префикс типа в виде **FP32**:
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
- BgFP32Vector2 - вектор одинарной точности
|
||||
- BgFP64Vector2 - вектор двойной точности
|
||||
|
||||
Векторы типа BgFP32Vecto2 для хранения координат использует тип **float** (тип
|
||||
Векторы типа BgFP32Vector2 для хранения координат использует тип **float** (тип
|
||||
binary32 стандарта IEEE 754).
|
||||
|
||||
Векторы BgFP64Vector2 используют тип **double** (тип binary64 стандарта IEEE 754).
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue