Исправление и расширение документации по векторам и кватернионам

This commit is contained in:
Andrey Pokidov 2026-03-30 01:19:19 +07:00
parent 460fe94830
commit cc3ce1f327
8 changed files with 142 additions and 33 deletions

View file

@ -41,4 +41,10 @@ Fields:
- **s** is the real part of the quaternion. It is named after the word "scalar". - **s** is the real part of the quaternion. It is named after the word "scalar".
- **x**, **y**, **z** - Imaginary components of the quaternion. - **x**, **y**, **z** - Imaginary components of the quaternion.
## Functions
- [Reset](quaternion/reset-eng.md)
- bgc_fp32_quaternion_reset
- bgc_fp64_quaternion_reset
[Documentation](intro-eng.md) [Documentation](intro-eng.md)

View file

@ -42,4 +42,8 @@ q = s + ix + jy + kz
"scalar" - скалярная величина. "scalar" - скалярная величина.
- **x**, **y**, **z** - мнимые компоненты кватерниона. - **x**, **y**, **z** - мнимые компоненты кватерниона.
- [Сброс](quaternion/reset-rus.md)
- bgc_fp32_quaternion_reset
- bgc_fp64_quaternion_reset
[Документация](intro-rus.md) [Документация](intro-rus.md)

View file

@ -0,0 +1,49 @@
# Resetting the state of a Quaternion
[Русская версия / Russian version](reset-rus.md)
These functions set all parts of a quaternion to 0.
Function for **BGC_FP32_Quaternion**:
```c
inline void bgc_fp32_quaternion_reset(BGC_FP32_Quaternion* const quaternion);
```
Function for **BGC_FP64_Quaternion**:
```c
inline void bgc_fp64_quaternion_reset(BGC_FP64_Quaternion* const quaternion);
```
Each of these functions is equivalent to the following lines of code:
```c
vector->x = 0;
vector->y = 0;
```
You should pass valid pointers to these functions. The NULL (0) value is also
considered invalid.
This function is good for setting up the initial state of a quaternion.
Example of use:
```c
#include <stdio.h>
#include <basic-geometry.h>
int main()
{
BGC_FP64_Quaternion quaternion;
bgc_fp32_quaternion_reset(&quaternion);
printf("s = %lf, x = %lf, y = %lf, z = %lf\n", quaternion.s, quaternion.x, quaternion.y, quaternion.z);
return 0;
}
```
[Documentation](../intro-eng.md) / [2D vectors](../quaternion-eng.md)

View file

@ -0,0 +1,50 @@
# Сброс состояния кватерниона
[English version / Английская версия](reset-eng.md)
Функции устанавливают значение 0 всем координатам двумерных векторов.
Функция для **BGC_FP32_Quaternion**:
```c
inline void bgc_fp32_quaternion_reset(BGC_FP32_Quaternion* const quaternion);
```
Функция для **BGC_FP64_Quaternion**:
```c
inline void bgc_fp64_quaternion_reset(BGC_FP64_Quaternion* const quaternion);
```
Каждая из данных функции эквивалентна следующим строкам кода:
```c
vector->x = 0;
vector->y = 0;
```
В параметре **quaternion** следует передавать корректный указатель на
существующую область памяти. Значение NULL (0) считается некорректным.
Данная функция хорошо подходит для инициализации начального состояния
кватерниона.
Пример применения:
```c
#include <stdio.h>
#include <basic-geometry.h>
int main()
{
BGC_FP64_Quaternion quaternion;
bgc_fp32_quaternion_reset(&quaternion);
printf("s = %lf, x = %lf, y = %lf, z = %lf\n", quaternion.s, quaternion.x, quaternion.y, quaternion.z);
return 0;
}
```
[Документация](../intro-rus.md) / [Кватернионы](../quaternion-rus.md)

View file

@ -26,7 +26,7 @@ vector->y = 0;
You should pass valid pointers to these functions. The NULL (0) value is also You should pass valid pointers to these functions. The NULL (0) value is also
considered invalid. considered invalid.
This function is good for setting up the initial state of a 3D vector. This function is good for setting up the initial state of a 2D vector.
Example of use: Example of use:
@ -40,7 +40,7 @@ int main()
bgc_fp32_vector2_reset(&my_vector); bgc_fp32_vector2_reset(&my_vector);
printf("x = %f, y = %f\n", my_vector.x1, my_vector.x2); printf("x = %f, y = %f\n", my_vector.x, my_vector.y);
return 0; return 0;
} }

View file

@ -1,34 +1,34 @@
# Сброс состояния двумерного вектора # Сброс состояния двумерного вектора
[English version / Английская версия](reset-eng.md) [English version / Английская версия](reset-eng.md)
Функции устанавливают значение 0 всем координатам двумерных векторов. Функции устанавливают значение 0 всем координатам двумерных векторов.
Функция для **BGC_FP32_Vector2**: Функция для **BGC_FP32_Vector2**:
```c ```c
inline void bgc_fp32_vector2_reset(BGC_FP32_Vector2* const vector); inline void bgc_fp32_vector2_reset(BGC_FP32_Vector2* const vector);
``` ```
Функция для **BGC_FP64_Vector2**: Функция для **BGC_FP64_Vector2**:
```c ```c
inline void bgc_fp64_vector2_reset(BGC_FP64_Vector2* const vector); inline void bgc_fp64_vector2_reset(BGC_FP64_Vector2* const vector);
``` ```
Каждая из данных функции эквивалентна следующим строкам кода: Каждая из данных функции эквивалентна следующим строкам кода:
```c ```c
vector->x = 0; vector->x = 0;
vector->y = 0; vector->y = 0;
``` ```
В параметре **vector** следует передавать корректные указатели. Значение В параметре **vector** следует передавать корректные указатели. Значение
NULL (0) также считается некорректным. NULL (0) также считается некорректным.
Данная функция хорошо подходит для инициализации начального состояния вектора. Данная функция хорошо подходит для инициализации начального состояния вектора.
Пример применения: Пример применения:
```c ```c
#include <stdio.h> #include <stdio.h>
@ -40,10 +40,10 @@ int main()
bgc_fp32_vector2_reset(&my_vector); bgc_fp32_vector2_reset(&my_vector);
printf("x = %f, y = %f\n", my_vector.x1, my_vector.x2); printf("x = %f, y = %f\n", my_vector.x, my_vector.y);
return 0; return 0;
} }
``` ```
[Документация](../intro-rus.md) / [2D векторы](../vector2-rus.md) [Документация](../intro-rus.md) / [2D векторы](../vector2-rus.md)

View file

@ -1,23 +1,23 @@
# Копирование # Копирование
[English version / Английская версия](copy-eng.md) [English version / Английская версия](copy-eng.md)
Функции копирования позволяют скопировать значения координат одного вектора Функции копирования позволяют скопировать значения координат одного вектора
в другой вектор. в другой вектор.
Функция для **BGC_FP32_Vector3**: Функция для **BGC_FP32_Vector3**:
```c ```c
inline void bgc_fp32_vector3_copy(BGC_FP32_Vector3* const destination, const BGC_FP32_Vector3* const source); inline void bgc_fp32_vector3_copy(BGC_FP32_Vector3* const destination, const BGC_FP32_Vector3* const source);
``` ```
Функция для **BGC_FP64_Vector3**: Функция для **BGC_FP64_Vector3**:
```c ```c
inline void bgc_fp64_vector3_copy(BGC_FP64_Vector3* const destination, const BGC_FP64_Vector3* const source); inline void bgc_fp64_vector3_copy(BGC_FP64_Vector3* const destination, const BGC_FP64_Vector3* const source);
``` ```
Каждая из данных функции эквивалентна следующим строкам кода: Каждая из данных функции эквивалентна следующим строкам кода:
```c ```c
destination->x = source->x; destination->x = source->x;
@ -25,18 +25,18 @@ destination->y = source->y;
destination->z = source->z; destination->z = source->z;
``` ```
Параметры **source** и **destination** не должны быть некорректными указателями. Параметры **source** и **destination** не должны быть некорректными указателями.
Значение NULL (0) также считается некорректным. Значение NULL (0) также считается некорректным.
Параметр **source** должен быть указателем на трёхмерный вектор, координаты Параметр **source** должен быть указателем на трёхмерный вектор, координаты
которого должны быть скопированы. Координаты вектора **source** не изменятся которого должны быть скопированы. Координаты вектора **source** не изменятся
после вызова функции. после вызова функции.
Параметр **destination** должен быть указателем на трёхмерный вектор, координаты Параметр **destination** должен быть указателем на трёхмерный вектор, координаты
которого должны быть изменены. Координаты вектора **destination** после вызова которого должны быть изменены. Координаты вектора **destination** после вызова
функции станут такими же, как и у вектора **source**. функции станут такими же, как и у вектора **source**.
Пример применения: Пример применения:
```c ```c
#include <stdio.h> #include <stdio.h>
@ -58,4 +58,4 @@ int main()
} }
``` ```
[Документация](../intro-rus.md) / [3D векторы](../vector3-rus.md) [Документация](../intro-rus.md) / [3D векторы](../vector3-rus.md)

View file

@ -5,13 +5,13 @@
Функции обмена позволяют двум векторам одного типа обменяться значениями Функции обмена позволяют двум векторам одного типа обменяться значениями
координат. координат.
Функция для **BgcVector3FP32**: Функция для **BGC_FP32_Vector3**:
```c ```c
inline void bgc_fp32_vector3_swap(BGC_FP32_Vector3* const vector1, BGC_FP32_Vector3* const vector2); inline void bgc_fp32_vector3_swap(BGC_FP32_Vector3* const vector1, BGC_FP32_Vector3* const vector2);
``` ```
Функция для **BgcVector3FP32**: Функция для **BGC_FP64_Vector3**:
```c ```c
inline void bgc_fp64_vector3_swap(BGC_FP64_Vector3* const vector1, BGC_FP64_Vector3* const vector2); inline void bgc_fp64_vector3_swap(BGC_FP64_Vector3* const vector1, BGC_FP64_Vector3* const vector2);