Написание документации: кватернионы и версоры

This commit is contained in:
Andrey Pokidov 2024-11-25 01:57:35 +07:00
parent 5c80084b1e
commit 3ff894cf5d
21 changed files with 114 additions and 18 deletions

View file

@ -1,48 +0,0 @@
# Angles
There are no structures for angles in the library. The library represents
angles as floating point numbers of types **float** and **double**.
There are three units of measurement for angles in the library:
* radians (the full round is equal to 2π radians)
* degrees (the full round is equal to 360 degrees)
* turns (the full round is equal to 1 turn)
The units of measurement of angles are defined with an enumerated type:
typedef enum {
BG_ANGLE_UNIT_RADIANS = 1,
BG_ANGLE_UNIT_DEGREES = 2,
BG_ANGLE_UNIT_TURNS = 3
} angle_unit_t;
* BG_ANGLE_UNIT_RADIANS is for measurement of angles in radians
* BG_ANGLE_UNIT_DEGREES is for measurement of angles in degrees
* BG_ANGLE_UNIT_TURNS is for measurement of angles in turns
The functions of the library do not require angle values to be limited by any
range. But there are functions which can normalize angles to specific ranges.
There are two ranges of normalized angles: a signed range and an unsigned
range.
The unsigned range has no negative values. The unsigned range corresponds:
* [0, 2π) radians
* [0, 360) degrees
* [0, 1) turns
The signed range has both positive and negative values. The signed range
corresponds:
* (-π, π] radians
* (-180, 180] degrees
* (-0.5, 0.5] turns
The ranges of angles are defined with an enumerated type:
typedef enum {
BG_ANGLE_RANGE_UNSIGNED = 1,
BG_ANGLE_RANGE_SIGNED = 2
} angle_range_t;
* BG_ANGLE_RANGE_UNSIGNED is for the unsigned range of values;
* BG_ANGLE_RANGE_SIGNED is for the signed range of values.