Работа с векторами

Материал из K3-Macro
Макро | Математические функции | Алгебраические и тригонометрические функции | Функции работы с матрицами | Функции аффинных преобразований | Работа с векторами | Функции геометрических вычислений | Преобразование координат точек и векторов | Работа с битовыми масками

В данном разделе под термином "вектор" подразумевается массив из трех элементов. Работа с векторами осуществляется через команды Normalv, Addv, Subv, Vectorv, Scalarv, Pntdist.

Normalv[править | править код]

LOGICAL Normalv(DOUBLE array <A[3]>)

Функция осуществляет нормирование вектора, заданного своими координатами в массиве <A[3]>.

Функция возвращает^

1 — в случае удачного нормирования и
0 — в случае ошибки (вектор вырожденный)

Пример:

defarr a[3];
a[1]=1;
a[2]=1;
a[3]=1;
=Normalv(a);
1
=a[1];
0.577

Addv, Subv, Vectorv, Scalarv[править | править код]

LOGICAL Addv(DOUBLE array <A[3]>, Double array <B[3]>, Double array <C[3]>)

Сложение двух векторов


LOGICAL Subv(DOUBLE array <A[3]>, Double array <B[3]>, Double array <C[3]>)

Вычитание двух векторов


LOGICAL Vectorv(DOUBLE array <A[3]>, Double array <B[3]>, Double array <C[3]>)

Векторное произведение двух векторов

Данные функции осуществляют операции с векторами, заданными своими координатами в массивах <A[3]> и '<B[3]> и заполняют массив <C[3]> результатом операции. Функции возвращают

1 — в случае успешного завершения и
0 — в случае ошибки


Double Scalarv(DOUBLE array <A[3]>, Double array <B[3]>)

Функция вычисляет скалярное произведение двух векторов, заданных массивами <A[3]> и <B[3]>. Возвращает вычисленную величину

Пример:

Defarr a[3], b[3], c[3];
a[1]=1;
a[2]=1;
a[3]=1;
b[1]=1;
b[2]=2;
b[3]=3;
=addv(a,b,c);
1
=c[1];
2
=c[2];
3
=c[3];
4
=Subv(a,b,c);
1
=c[1];
0
=c[2];
-1
=c[3];
-2
=Vectorv(a,b,c);
1
=c[1];
1
=c[2];
-2
=c[3];
1
=Scalarv(a,b);
6

Pntdist[править | править код]

Double Pntdist(DOUBLE array <A[3]>, Double array <B[3]>)

Функция вычисляет и возвращает расстояние между двумя точками, заданными своими координатами в массивах <A[3]> и <B[3]>.

Пример:

Defarr a[3], b[3];
a[1]=1;
a[2]=1;
a[3]=1;
b[1]=1;
b[2]=2;
b[3]=3;
=Pntdist(a,b);
2.236

Макро | Математические функции | Алгебраические и тригонометрические функции | Функции работы с матрицами | Функции аффинных преобразований | Работа с векторами | Функции геометрических вычислений | Преобразование координат точек и векторов | Работа с битовыми масками