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

2.1 KiB
Raw Blame History

Обмен значениями

English version / Английская версия

Функции обмена позволяют двум кватернионам одного типа обменяться значениями координат.

Функция для BGC_FP32_Quaternion:

inline void bgc_fp32_quaternion_swap(BGC_FP32_Quaternion* const quarternion1, BGC_FP32_Quaternion* const quarternion2);

Функция для BGC_FP64_Quaternion:

inline void bgc_fp64_quaternion_swap(BGC_FP64_Quaternion* const quarternion1, BGC_FP64_Quaternion* const quarternion2);

Параметры quarternion1 и quarternion2 должны быть корректными указателями. Значение NULL (0) также считается некорректным.

Кватернион quarternion1 после вызова данной функции будет иметь значения компонент такие же, какие имел кватернион quarternion2 до вызова функции.

А кватернион quarternion2 после вызова данной функции будет иметь такие же значения компонет, какие имел кватернион quarternion1 до вызова функции.

Пример применения:

#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

Документация / Кватернионы