add docs for vectors
This commit is contained in:
@@ -0,0 +1,147 @@
|
||||
# Библиотека Vec*n*
|
||||
|
||||
*vecn* содержит набор функций для работы с векторами размерностью 2, 3 или 4.
|
||||
Большинство функций имеют несколько вариантов списка аргументов (перегрузок).
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> vecn, где n |-> размерность вектора (2, 3, 4), т.е vec2, vec3, vec4
|
||||
>
|
||||
|
||||
## Типы данных
|
||||
|
||||
На данной странице будут использоваться условные обозначения типов.
|
||||
- vector - массив из двух, трех или четырех чисел
|
||||
- vec2 - массив из двух чисел
|
||||
- vec3 - массив из трех чисел
|
||||
- vec4 - массив из четырех чисел
|
||||
|
||||
> [!WARNING]
|
||||
>
|
||||
> Аннотации типов являются частью документации и не указываются при вызове использовании.
|
||||
|
||||
|
||||
## Операции с векторами
|
||||
|
||||
#### Сложение - *vecn.add(...)*
|
||||
|
||||
```lua
|
||||
-- возвращает результат сложения векторов
|
||||
vecn.add(a: vector, b: vector)
|
||||
|
||||
-- возвращает результат сложения вектора и скаляра
|
||||
vecn.add(a: vector, b: number)
|
||||
```
|
||||
|
||||
#### Вычитание - *vecn.sub(...)*
|
||||
|
||||
```lua
|
||||
-- возвращает результат вычитания векторов
|
||||
vecn.sub(a: vector, b: vector)
|
||||
|
||||
-- возвращает результат вычитания скаляра из вектора
|
||||
vecn.sub(a: vector, b: number)
|
||||
```
|
||||
|
||||
#### Умножение - *vecn.mul(...)*
|
||||
|
||||
```lua
|
||||
-- возвращает результат умножения векторов
|
||||
vecn.mul(a: vector, b: vector)
|
||||
|
||||
-- возвращает результат умножения вектора на скаляр
|
||||
vecn.mul(a: vector, b: number)
|
||||
```
|
||||
|
||||
#### Инверсия - *vecn.inv(...)*
|
||||
|
||||
```lua
|
||||
-- возвращает результат инверсии (противоположный) вектора
|
||||
vecn.inv(a: vector)
|
||||
```
|
||||
|
||||
#### Деление - *vecn.div(...)*
|
||||
|
||||
```lua
|
||||
-- возвращает результат деления векторов
|
||||
vecn.div(a: vector, b: vector)
|
||||
|
||||
-- возвращает результат деления вектора на скаляр
|
||||
vecn.div(a: vector, b: number)
|
||||
```
|
||||
|
||||
#### Нормализация - *vecn.norm(...)*
|
||||
|
||||
```lua
|
||||
-- возвращает нормализованный вектор
|
||||
vecn.norm(a: vector)
|
||||
```
|
||||
#### Длина вектора - *vecn.len(...)*
|
||||
|
||||
```lua
|
||||
-- возвращает длину вектора
|
||||
vecn.len(a: vector)
|
||||
```
|
||||
|
||||
#### Абсолютное значение - *vecn.abs(...)*
|
||||
|
||||
```lua
|
||||
-- возвращает вектор с абсолютными значениями
|
||||
vecn.abs(a: vector)
|
||||
```
|
||||
|
||||
#### Округление - *vecn.round(...)*
|
||||
|
||||
```lua
|
||||
-- возвращает вектор с округленными значениями
|
||||
vecn.round(a: vector)
|
||||
```
|
||||
|
||||
#### Степень - *vecn.pow(...)*
|
||||
|
||||
```lua
|
||||
-- возвращает вектор с элементами, возведенными в степень
|
||||
vecn.pow(a: vector, b: number)
|
||||
```
|
||||
|
||||
#### Скалярное произведение - *vecn.dot(...)*
|
||||
```lua
|
||||
-- возвращает скалярное произведение векторов
|
||||
vecn.dot(a: vector, b: vector)
|
||||
```
|
||||
|
||||
#### Векторное произведение - *vecn.cross(...)*
|
||||
```lua
|
||||
-- возвращает векторное произведение векторов
|
||||
vecn.cross(a: vector, b: vector)
|
||||
```
|
||||
|
||||
#### Поворот - *vecn.rot(...)*
|
||||
> [!WARNING]
|
||||
> Угол поворота (angle) указывается в радианах.
|
||||
|
||||
```lua
|
||||
-- возвращает вектор, повернутый на заданный угол
|
||||
vecn.rot(a: vector, angle: number)
|
||||
```
|
||||
|
||||
#### Перевод в строку - *vecn.tostring(...)*
|
||||
> [!WARNING]
|
||||
> Возвращает только тогда, когда содержимым является вектор
|
||||
```lua
|
||||
-- возвращает строку представляющую содержимое вектора
|
||||
vecn.tostring(a: vector)
|
||||
```
|
||||
|
||||
|
||||
## Пример
|
||||
```lua
|
||||
-- создание векторов разной размерности
|
||||
local v1_3d = {1, 2, 2}
|
||||
local v2_3d = {10, 20, 40}
|
||||
local v3_4d = {1, 2, 4, 1}
|
||||
local v4_2d = {1, 1}
|
||||
local scal = 6 -- обычный скаляр
|
||||
|
||||
|
||||
```
|
||||
Reference in New Issue
Block a user