Функции, описанные в данной главе, используется для работы с радиус-векторами трехмерного пространства. Координаты радиус-вектора описываются структурой VECTOR_3.
V3_ABS
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | A | Радиус-вектор | |
Выходы | V3_ABS | REAL | Длина радиус-вектора |
Функция V3_ABS возвращает модуль радиус-вектора A (равный длине соответствующего отрезка), вычисленный по формуле

Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
len : REAL;
END_VAR
a.X := 3.0;
a.Y := 4.0;
a.Z := 0.0;
len := OSCAT_BASIC.V3_ABS(A := a); (* len = 5.0 *)
END_PROGRAM |
V3_ADD
Функция V3_ADD возвращает сумму радиус-векторов A и B (суммирование векторов представляет собой суммирование их координат).
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
b : OSCAT_BASIC.VECTOR_3;
sum: OSCAT_BASIC.VECTOR_3;
END_VAR
a.X := 3.0;
a.Y := 4.0;
a.Z := 0.0;
b.X := 1.0;
b.Y := 2.0;
b.Z := 2.0;
sum := OSCAT_BASIC.V3_ADD(A := a, B := b); (* sum = (4, 6, 2) *)
END_PROGRAM |
V3_ANG
Функция V3_ANG возвращает значение угла (в радианах) между радиус-векторами A и B.
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
b : OSCAT_BASIC.VECTOR_3;
ang : REAL;
END_VAR
a.X := 1.0; a.Y := 0.0; a.Z := 0.0;
b.X := 0.0; b.Y := 1.0; b.Z := 0.0;
ang := OSCAT_BASIC.V3_ANG(A := a, B := b); (* ang ≈ 1.5707963 (π/2) *)
END_PROGRAM |
V3_DPRO
Функция V3_DPRO возвращает скалярное произведение радиус-векторов A и B.
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
b : OSCAT_BASIC.VECTOR_3;
ang : REAL;
END_VAR
a.X := 3.0; a.Y := 4.0; a.Z := 0.0;
b.X := 1.0; b.Y := 2.0; b.Z := 2.0;
ang := OSCAT_BASIC.V3_DPRO(A := a, B := b); (* dot = 11.0 *)
END_PROGRAM |
V3_NORM
Функция V3_NORM конвертирует одномерный радиус-вектор A в единичный вектор, ориентированный в том же направлении.
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
unit : OSCAT_BASIC.VECTOR_3;
END_VAR
a.X := 3.0;
a.Y := 4.0;
a.Z := 0.0;
unit := OSCAT_BASIC.V3_NORM(A := a); (* unit ≈ (0.6, 0.8, 0.0) *)
END_PROGRAM |
V3_NUL
Тип модуля: функция | Переменная | Тип | Описание |
|---|---|---|---|
Входы | A | Радиус-вектор | |
Выходы | V3_NUL | BOOL | Флаг «нулевой вектор» |
Функция V3_NUL возвращает TRUE, если радиус-вектор A является нулевым вектором.
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
isNul : BOOL;
END_VAR
a.X := 0.0;
a.Y := 0.0;
a.Z := 0.0;
isNul := OSCAT_BASIC.V3_NUL(A := a); (* isNul ≈ TRUE *)
END_PROGRAM |
V3_PAR
Функция V3_PAR возвращает TRUE, если радиус-векторы A и B являются коллинеарными. Нулевой вектор коллинеарен любому вектору, т.к. не имеет направления.
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
b : OSCAT_BASIC.VECTOR_3;
isPar : BOOL;
END_VAR
a.X := 1.0; a.Y := 2.0; a.Z := 3.0;
b.X := 2.0; b.Y := 4.0; b.Z := 6.0;
isPar := OSCAT_BASIC.V3_PAR(A := a, B := b); (* isPar = TRUE *)
END_PROGRAM |
V3_REV
Функция V3_REV конвертирует радиус-вектор A в радиус-вектор с равной длиной, но ориентированный в противоположном направлении.
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
rev : OSCAT_BASIC.VECTOR_3;
END_VAR
a.X := 3.0;
a.Y := 4.0;
a.Z := 0.0;
rev := OSCAT_BASIC.V3_REV(A := a); (* rev = (-3, -4, 0) *)
END_PROGRAM |
V3_SMUL
Функция V3_SMUL возвращает произведение радиус-вектора A и числа M.
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
m : REAL := 2.0;
res : OSCAT_BASIC.VECTOR_3;
END_VAR
a.X := 3.0;
a.Y := 4.0;
a.Z := 0.0;
res := OSCAT_BASIC.V3_SMUL(A := a, M := m); (* res = (6, 8, 0) *)
END_PROGRAM |
V3_SUB
Функция V3_SUB возвращает разность радиус-векторов A и B.
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
b : OSCAT_BASIC.VECTOR_3;
dif : OSCAT_BASIC.VECTOR_3;
END_VAR
a.X := 3.0; a.Y := 4.0; a.Z := 0.0;
b.X := 1.0; b.Y := 2.0; b.Z := 2.0;
dif := OSCAT_BASIC.V3_SUB(A := a, B := b); (* dif = (2, 2, -2) *)
END_PROGRAM |
V3_XANG
Функция V3_XANG возвращает угол между радиус-вектором A и осью X (в радианах).
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
xAng : REAL;
END_VAR
a.X := 3.0;
a.Y := 4.0;
a.Z := 0.0;
xAng := OSCAT_BASIC.V3_XANG(A := a); (* xAng ≈ 0.9272952 рад *)
END_PROGRAM |
V3_XPRO
Функция V3_XPRO возвращает векторное произведение радиус-векторов A и B.
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
b : OSCAT_BASIC.VECTOR_3;
cross : OSCAT_BASIC.VECTOR_3;
END_VAR
a.X := 1.0; a.Y := 0.0; a.Z := 0.0;
b.X := 0.0; b.Y := 1.0; b.Z := 0.0;
cross := OSCAT_BASIC.V3_XPRO(A := a, B := b); (* cross = (0, 0, 1) *)
END_PROGRAM |
V3_YANG
Функция V3_YANG возвращает угол между радиус-вектором A и осью Y (в радианах).
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
yAng : REAL;
END_VAR
a.X := 3.0;
a.Y := 4.0;
a.Z := 0.0;
yAng := OSCAT_BASIC.V3_YANG(A := a); (* yAng ≈ 0.6435011 рад *)
END_PROGRAM |
V3_ZANG
Функция V3_ZANG возвращает угол между радиус-вектором A и осью Z (в радианах).
Пример
VAR
a : OSCAT_BASIC.VECTOR_3;
zAng : REAL;
END_VAR
a.X := 3.0;
a.Y := 4.0;
a.Z := 0.0;
zAng := OSCAT_BASIC.V3_ZANG(A := a); (* zAng ≈ 1.5707963 рад *)
END_PROGRAM |