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

2.5 KiB
Raw Blame History

Обмен значениями координат

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

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

inline void bgc_fp32_vector3_swap(BGC_FP32_Vector3* const vector1, BGC_FP32_Vector3* const vector2);

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

inline void bgc_fp64_vector3_swap(BGC_FP64_Vector3* const vector1, BGC_FP64_Vector3* const vector2);

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

Параметры

Параметр Направление Описание
vector1 исходящий / входящий Указатель на вектор, в который будут скопированы значения координат из vector2
vector2 исходящий / входящий Указатель на вектор, в который будут скопированы значения координат из vector1

Параметры vector1 и vector2 должны быть корректными указателями на структуры трёхмерных векторов. Значение NULL (0) считается некорректным.

После вызова функции вектор vector1 будет иметь такие же значения координат, как вектор vector2 до вызова функции.

А вектор vector2 после вызова функции будет иметь координаты, такие же, как у вектора vector1 до вызова функции.

Пример

#include <stdio.h>
#include <basic-geometry.h>

int main()
{
    BGC_FP32_Vector3 v1, v2;

    bgc_fp32_vector3_set_values(&v1, -2, 7, 5);
    bgc_fp32_vector3_set_values(&v2, 10, -1, -3);

    bgc_fp32_vector3_swap(&v1, &v2);

    printf("Vector #1: x = %f, y = %f, z = %f\n", v1.x, v1.y, v1.z);
    printf("Vector #2: x = %f, y = %f, z = %f\n", v2.x, v2.y, v2.z);

    return 0;
}

Результат:

Vector #1: x = 10.000000, y = -1.000000, z = -3.000000
Vector #2: x = -2.000000, y = 7.000000, z = 5.000000

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