bgc-c/docs/quaternion/swap-rus.md

58 lines
2 KiB
Markdown
Raw Permalink 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 / Английская версия](swap-eng.md)
Функции обмена позволяют двум кватернионам одного типа обменяться значениями
координат.
Функция для **BGC_FP32_Quaternion**:
```c
inline void bgc_fp32_quaternion_swap(BGC_FP32_Quaternion* const quarternion1, BGC_FP32_Quaternion* const quarternion2);
```
Функция для **BGC_FP64_Quaternion**:
```c
inline void bgc_fp64_quaternion_swap(BGC_FP64_Quaternion* const quarternion1, BGC_FP64_Quaternion* const quarternion2);
```
Параметры **quarternion1** и **quarternion2** должны быть корректными
указателями. Значение NULL (0) также считается некорректным.
Кватернион **quarternion1** после вызова данной функции будет иметь значения
компонент такие же, какие имел кватернион **quarternion2** до вызова функции.
А кватернион **quarternion2** после вызова данной функции будет иметь такие же
значения компонет, какие имел кватернион **quarternion1** до вызова функции.
### Пример
```c
#include <stdio.h>
#include <basic-geometry.h>
int main()
{
BGC_FP32_Quaternion q1, q2;
bgc_fp32_quaternion_set_values(&q1, 4, -2, 7, 5);
bgc_fp32_quaternion_set_values(&q2, -5, 10, -1, -3);
bgc_fp32_quaternion_swap(&q1, &q2);
printf("Quaternion #1: s = %f, x = %f, y = %f, z = %f\n", q1.s, q1.x, q1.y, q1.z);
printf("Quaternion #2: s = %f, x = %f, y = %f, z = %f\n", q2.s, q2.x, q2.y, q2.z);
return 0;
}
```
Вывод в консоль:
```
Quaternion #1: s = -5.000000, x = 10.000000, y = -1.000000, z = -3.000000
Quaternion #2: s = 4.000000, x = -2.000000, y = 7.000000, z = 5.000000
```
[Документация](../intro-rus.md) / [Кватернионы](../quaternion-rus.md)