bgc-c/docs/intro-rus.md

69 lines
3.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.

# Библиотека базовых геометрических вычислений
[English version / Английская версия](intro-eng.md)
## Особенности наименования
В языке программирования C (Си) нет пространств имён, потому роль пространств имён играют префиксы в названиях.
Библиотека использует префиксы в названиях типов, констант и функций для того, чтобы избежать конфликтов в названиях констант, типов и функций с другими библиотеками.
### Префикс библиотеки (основной префикс)
Основным префиксом является **BGC** (сокращение от **B**asic **G**eometric **C**omputations, что можно перевести как "Базовые Геометрие Вычисления").
Для констант и структур данных префикс имеет вид **BGC_**
Например, структуры:
- BGC_FP64_Vector3
- BGC_FP32_Quaternion
- BGC_FP32_Matrix2x2
Константы:
- BGC_FP32_EPSILON
- BGC_FP64_TWO_PI
Функции имеют префикс в виде **bgc_**, например:
- bgc_fp32_turn3_combine
- bgc_fp64_matrix3x3_subtract
### Префикс базового типа (вторичный префикс)
После префикса библиотеки идёт префикс базового типа.
Библиотека использует два типа чисел с плавающей запятой: **float** и **double** (типы **binary32** и **binary64** стандарта **IEEE 754**).
Поэтому в библиотеке есть два префикса типа:
- **FP32** - означает **F**loating **P**oint **32** bit, то есть, число с плавающей запятой, 32 бита, что соответствует типу **float** языка программирования Си.
- **FP64** - означает **F**loating **P**oint **64** bit, то есть, число с плавающей запятой, 64 бита, что соответствует типу **double** языка программирования Си.
Типы структур и константы, основанные на типе **float** имеют префикс **FP32_**:
- BGC_FP32_Vector3
- BGC_FP32_Matrix3x2
- BGC_FP32_Quaternion
- BGC_FP32_PI
- BGC_FP32_EPSILON
Типы структур и константы, основанные на типе **double** имеют префикс **FP64_**:
- BGC_FP64_Vector2
- BGC_FP64_Matrix2x3
- BGC_FP64_Turn3
- BGC_FP64_HALF_PI
- BGC_FP64_ONE_THIRD
Функции, которые работают с данными типа **float** имеют префикс **fp32_**:
- bgc_fp32_vector2_get_length
- bgc_fp32_radians_to_degrees
Функции, которые работают с данными типа **double** имеют префикс **fp64_**:
- bgc_fp64_vector3_reset
- bgc_fp64_normalize_radians
Использование подобных префиксов позволяет расширять библиотеку используя новые базовые типы в будущем.
### Типы данных
- [Двумерные векторы](vector2-rus.md)
- [Трёхмерные векторы](vector3-rus.md)
- [Кватернионы](quaternion-rus.md)