90 lines
2.4 KiB
Markdown
90 lines
2.4 KiB
Markdown
## Плоскостной вектор vec2(x, y)
|
|
### Операции над векторами
|
|
|
|
|
|
```lua
|
|
function vector2:round(decimals: number) -> round[vec2]
|
|
```
|
|
Округление компонентов вектора
|
|
```lua
|
|
function vector2:len() -> number
|
|
```
|
|
Длина вектора
|
|
|
|
```lua
|
|
function vector2:norm() -> number
|
|
```
|
|
Нормализация вектора
|
|
|
|
```lua
|
|
function vector2:abtw(vector: vec2) -> number
|
|
```
|
|
Угол между двумя векторами в радианах
|
|
|
|
|
|
```lua
|
|
function vector2:proj(vector: vec2) -> vec2
|
|
```
|
|
Проекция вектора
|
|
|
|
```lua
|
|
function vector2:dot(vector: vec2) -> number
|
|
```
|
|
Векторное (внутреннее) произведение
|
|
|
|
```lua
|
|
function vector2:lerp(
|
|
--Целевой вектор
|
|
b: vec2,
|
|
--Интерполяционный коэффициент (от 0 до 1)
|
|
t: number
|
|
) -> vec2
|
|
```
|
|
Линейная интерполяция вектора
|
|
|
|
```lua
|
|
function vector2:dist(vector: vec2) -> number
|
|
```
|
|
Дистанция между двумя векторами
|
|
|
|
```lua
|
|
function vector2:cross(vector: vec2) -> number
|
|
```
|
|
Векторное (внешнее) произведение
|
|
|
|
```lua
|
|
function vector2:rot(
|
|
--Угол поворота вектора на заданный угол (в радианах)
|
|
angle: number->rad,
|
|
--Вращение вектора относительно осей ("x", "y", "z")
|
|
axis: str,
|
|
--Если истина, то угол поворота певеодится автоматический из градусы в радианы
|
|
convert2deg: bool
|
|
) -> vec2
|
|
```
|
|
Поворот вектора
|
|
|
|
### Операции с векторами
|
|
|
|
```lua
|
|
local vec2 = require("res:vector2")
|
|
|
|
local v1 = vec2(5, 10)
|
|
local v2 = vec2(10, 15)
|
|
|
|
-- vec2 .. vec2
|
|
sum_vectors = v1 + v2 -- (15, 25)
|
|
sub_vectors = v1 - v2 -- (-5, -5)
|
|
mul_vectors = v1 * v2 -- (50, 150)
|
|
div_vectors = v1 / v2 -- (0.5, 0.66667.)
|
|
pow_vectors = v1 ^ v2 -- (9765625, 1e+15)
|
|
|
|
--vec2 .. scalar
|
|
sum_vec2_scalar = v1 + 10 -- (15, 25)
|
|
sub_vec2_scalar = v1 - 12 -- (-7, -2)
|
|
mul_vec2_scalar = v1 * 20 -- (100, 200)
|
|
div_vec2_scalar = v1 / 1 -- (5, 10)
|
|
pow_vec2_scalar= v1 ^ 2 -- (25, 100)
|
|
```
|
|
|