61 lines
1.5 KiB
Markdown
61 lines
1.5 KiB
Markdown
# Êîïèðîâàíèå
|
|
|
|
[English version / Àíãëèéñêàÿ âåðñèÿ](copy-eng.md)
|
|
|
|
Ôóíêöèè êîïèðîâàíèÿ ïîçâîëÿþò ñêîïèðîâàòü çíà÷åíèÿ êîîðäèíàò îäíîãî âåêòîðà
|
|
â äðóãîé âåêòîð.
|
|
|
|
Ôóíêöèÿ äëÿ **BGC_FP32_Vector3**:
|
|
|
|
```c
|
|
inline void bgc_fp32_vector3_copy(BGC_FP32_Vector3* const destination, const BGC_FP32_Vector3* const source);
|
|
```
|
|
|
|
Ôóíêöèÿ äëÿ **BGC_FP64_Vector3**:
|
|
|
|
```c
|
|
inline void bgc_fp64_vector3_copy(BGC_FP64_Vector3* const destination, const BGC_FP64_Vector3* const source);
|
|
```
|
|
|
|
Êàæäàÿ èç äàííûõ ôóíêöèè ýêâèâàëåíòíà ñëåäóþùèì ñòðîêàì êîäà:
|
|
|
|
```c
|
|
destination->x = source->x;
|
|
destination->y = source->y;
|
|
destination->z = source->z;
|
|
```
|
|
|
|
Ïàðàìåòðû **source** è **destination** íå äîëæíû áûòü íåêîððåêòíûìè óêàçàòåëÿìè.
|
|
Çíà÷åíèå NULL (0) òàêæå ñ÷èòàåòñÿ íåêîððåêòíûì.
|
|
|
|
Ïàðàìåòð **source** äîëæåí áûòü óêàçàòåëåì íà òð¸õìåðíûé âåêòîð, êîîðäèíàòû
|
|
êîòîðîãî äîëæíû áûòü ñêîïèðîâàíû. Êîîðäèíàòû âåêòîðà **source** íå èçìåíÿòñÿ
|
|
ïîñëå âûçîâà ôóíêöèè.
|
|
|
|
Ïàðàìåòð **destination** äîëæåí áûòü óêàçàòåëåì íà òð¸õìåðíûé âåêòîð, êîîðäèíàòû
|
|
êîòîðîãî äîëæíû áûòü èçìåíåíû. Êîîðäèíàòû âåêòîðà **destination** ïîñëå âûçîâà
|
|
ôóíêöèè ñòàíóò òàêèìè æå, êàê è ó âåêòîðà **source**.
|
|
|
|
Ïðèìåð ïðèìåíåíèÿ:
|
|
|
|
```c
|
|
#include <stdio.h>
|
|
#include <basic-geometry.h>
|
|
|
|
int main()
|
|
{
|
|
BGC_FP32_Vector3 my_vector1, my_vector2;
|
|
|
|
my_vector1.x = -2.0f;
|
|
my_vector1.y = 7.4f;
|
|
my_vector1.z = 1.8f;
|
|
|
|
bgc_fp32_vector3_copy(&my_vector2, &my_vector1);
|
|
|
|
printf("x = %f, y = %f, z = %f\n", my_vector2.x, my_vector2.y, my_vector2.z);
|
|
|
|
return 0;
|
|
}
|
|
```
|
|
|
|
[Äîêóìåíòàöèÿ](../intro-rus.md) / [3D âåêòîðû](../vector3-rus.md)
|