math
- Арифметичні функції
Цей модуль містить функції для виконання різних арифметичних та тригонометричних операцій.
- class math
- pi: number
Число π
- e: number
Число e
- tau: number
Число τ (2π)
- static random(a?, b?)
Повертає випадкове число.
Якщо заданий лише один аргумент, повертає випадкове ЦІЛЕ число в діапазоні [0;a] (включно).
Якщо задані обидва аргументи, повертає випадкове ЦІЛЕ число в діапазоні [a;b] (включно).
Якщо не задані аргументи, повертає випадкове ДРОБОВЕ число в діапазоні [0;1] (включно).
- Parameters:
a? (
integer
) – початок діапазону (включно)b? (
integer
) – кінець діапазону (включно)
- Return type:
number
Usage:
1local r = math.random(10, 20) 2print(r) -- Виведе випадкове число від 10 до 20 (включно). Можливо, це буде 13? А можливо, русня - не люди?
- static clamp(x, min, max)
Обмежує число x в діапазоні між min та max (включно).
- Parameters:
x (
number
) – число, яке потрібно обмежитиmin (
number
) – мінімальне значенняmax (
number
) – максимальне значення
- Return type:
number
Usage:
1print(math.clamp(8.1, 10, 20)) -- Виведе 10 2print(math.clamp(15.2, 10, 20)) -- Виведе 15.2 3print(math.clamp(23.3, 10, 20)) -- Виведе 20
- static lerp(min, max, t)
Лінійна інтерполяція.
Повертає значення, яке лінійно інтерполюється між min та max з коефіцієнтом t.
- Parameters:
min (
number
) – мінімальне значенняmax (
number
) – максимальне значенняt (
number
) – коефіцієнт інтерполяції (від 0 до 1)
- Return type:
number
Usage:
1print(math.lerp(0, 100, 0.5)) -- Виведе 50 2print(math.lerp(0, 100, 0.25)) -- Виведе 25 3print(math.lerp(0, 100, 0.7125)) -- Виведе 71.25
- static map(x, in_min, in_max, out_min, out_max)
Перетворення значення з одного діапазону в інший.
Повертає число
x
, перетворене з діапазону [in_min;in_max] в діапазон [out_min;out_max].- Parameters:
x (
number
) – число, яке потрібно перетворитиin_min (
number
) – початок вхідного діапазонуin_max (
number
) – кінець вхідного діапазонуout_min (
number
) – початок вихідного діапазонуout_max (
number
) – кінець вихідного діапазону
- Return type:
number
Usage:
1print(math.map(50, 0, 100, 0, 1)) -- Виведе 0.5 2print(math.map(25, 0, 100, 0, 1)) -- Виведе 0.25 3print(math.map(71.25, 0, 100, 0, 1)) -- Виведе 0.7125
- static abs(x)
Повертає модуль числа
x
.- Parameters:
x (
number
) – число- Return type:
number
- static sign(x)
Повертає знак числа
x
: -1, якщо число від’ємне, 0, якщо число дорівнює 0, 1, якщо число додатнє.- Parameters:
x (
number
) – число- Return type:
number
Usage:
1print(math.sign(-5)) -- Виведе -1 2print(math.sign(5)) -- Виведе 1 3print(math.sign(0)) -- Виведе 0
- static sqrt(x)
Повертає квадратний корінь числа
x
.- Parameters:
x (
number
) – число- Return type:
number
- static pow(base, exp)
Повертає число
x
в степеніexp
.- Parameters:
base (
number
) – числоexp (
number
) – степінь
- Return type:
number
Usage:
1print(math.pow(2, 3)) -- Виведе 8 2print(math.pow(64, 0.5)) -- Виведе 8
- static min(values)
Повертає мінімальне значення з таблиці.
- Parameters:
values (
table
) – таблиця чисел- Return type:
number
Usage:
1print(math.min({1.1, 2.2, 3.3, 4.4, 5.5})) -- Виведе 1.1 2print(math.min({5, 4, 3, 2, 1})) -- Виведе 1 3print(math.min({-5, -4, -3, -2, -1})) -- Виведе -5
- static max(values)
Повертає максимальне значення з таблиці.
- Parameters:
values (
table
) – таблиця чисел- Return type:
number
Usage:
1print(math.max({1.1, 2.2, 3.3, 4.4, 5.5})) -- Виведе 5.5 2print(math.max({5, 4, 3, 2, 1})) -- Виведе 5 3print(math.max({-5, -4, -3, -2, -1})) -- Виведе -1
- static sum(values)
Повертає суму всіх чисел з таблиці.
- Parameters:
values (
table
) – таблиця чисел- Return type:
number
Usage:
1print(math.sum({1, 2, 3, 4, 5})) -- Виведе 15 2print(math.sum({1.1, 2.2, 3.3, 4.4, 5.5})) -- Виведе 16.5 3print(math.sum({-5, -4, -3, -2, -1})) -- Виведе -15
- static avg(values)
Повертає середнє значення всіх чисел з таблиці.
- Parameters:
values (
table
) – таблиця чисел- Return type:
number
Usage:
1print(math.avg({1, 2, 3, 4, 5})) -- Виведе 3 2print(math.avg({1.1, 2.2, 3.3, 4.4})) -- Виведе 2.75 3print(math.avg({-5, -4, -3, -2})) -- Виведе -3.5
- static floor(x)
Округлює число
x
вниз.Повертає найбільше ціле число, яке менше або дорівнює
x
.- Parameters:
x (
number
) – число- Return type:
integer
Usage:
1print(math.floor(1.1)) -- Виведе 1 2print(math.floor(1.9)) -- Виведе 1 3print(math.floor(-1.1)) -- Виведе -2 4print(math.floor(-1.9)) -- Виведе -2
- static ceil(x)
Округлює число
x
вгору.Повертає найменше ціле число, яке більше або дорівнює
x
.- Parameters:
x (
number
) – число- Return type:
integer
Usage:
1print(math.ceil(1.1)) -- Виведе 2 2print(math.ceil(1.9)) -- Виведе 2 3print(math.ceil(-1.1)) -- Виведе -1 4print(math.ceil(-1.9)) -- Виведе -1
- static round(x)
Округлює число
x
до найближчого цілого.- Parameters:
x (
number
) – число- Return type:
integer
Usage:
1print(math.round(1.1)) -- Виведе 1 2print(math.round(1.9)) -- Виведе 2 3print(math.round(-1.1)) -- Виведе -1 4print(math.round(-1.9)) -- Виведе -2
- static sin(x)
Повертає значення синуса кута
x
(в радіанах).- Parameters:
x (
number
) – кут (в радіанах)- Return type:
number
Usage:
1print(math.sin(0)) -- Виведе 0 2print(math.sin(math.pi / 2)) -- Виведе 1
- static cos(x)
Повертає значення косинуса кута
x
(в радіанах).- Parameters:
x (
number
) – кут (в радіанах)- Return type:
number
Usage:
1print(math.cos(0)) -- Виведе 1 2print(math.cos(math.pi)) -- Виведе -1
- static tan(x)
Повертає значення тангенса кута
x
(в радіанах).- Parameters:
x (
number
) – кут (в радіанах)- Return type:
number
Usage:
1print(math.tan(0)) -- Виведе 0 2print(math.tan(math.pi / 4)) -- Виведе 1 3print(math.tan(math.pi / 2)) -- Виведе якесь дуже велике число, оскільки тангенс не визначений для кутів, що дорівнюють π/2. 4 -- Чому? Подумайте самі: трикутник з кутом 180 градусів - це взагалі трикутник?
- static asin(x)
Повертає значення арксинуса числа
x
.- Parameters:
x (
number
) – число- Return type:
number
- static acos(x)
Повертає значення арккосинуса числа
x
.- Parameters:
x (
number
) – число- Return type:
number
- static atan(x)
Повертає значення арктангенса числа
x
.- Parameters:
x (
number
) – число- Return type:
number
- static atan2(y, x)
Повертає значення арктангенса числа
y
/x
.Цей метод дуже зручно використовувати для обчислення кута між віссю x та точкою (x, y). А взагалі, якщо ви розумієте, що таке арктангенс, то, можливо, вам варто спробувати писати код на C? :)
- Parameters:
y (
number
) – число yx (
number
) – число x
- static log(x, base?)
Повертає значення логарифму числа
x
.- Parameters:
x (
number
) – числоbase? (
number
) – основа логарифму (за замовчуванням - числоe
)
- Return type:
number
- static deg(x)
Перетворює кут
x
з радіанів в градуси.- Parameters:
x (
number
) – кут (в радіанах)- Return type:
number
- static rad(x)
Перетворює кут
x
з градусів в радіани.- Parameters:
x (
number
) – кут (в градусах)- Return type:
number
- static norm(x, y)
Нормалізує вектор (x, y) до одиничної довжини.
- Parameters:
x (
number
) – координата xy (
number
) – координата y
- Return type:
number or number
- static len(x, y)
Повертає довжину вектора (x, y).
- Parameters:
x (
number
) – координата xy (
number
) – координата y
- Return type:
number
Usage:
1print(math.len(3, 4)) -- Виведе 5 2print(math.len(1, 1)) -- Виведе 1.4142135623731
- static dist(x1, y1, x2, y2)
Повертає відстань між точками (x1;y1) та (x2;y2).
- Parameters:
x1 (
number
) – координата x першої точкиy1 (
number
) – координата y першої точкиx2 (
number
) – координата x другої точкиy2 (
number
) – координата y другої точки
- Return type:
number
Usage:
1print(math.dist(0, 0, 3, 4) -- Виведе 5 2print(math.dist(0, 0, 1, 1) -- Виведе 1.4142135623731
- static rotate(x, y, angle)
Повертає вектор (x, y), обернутий на кут
angle
за годинниковою стрілкою (якщо уявити, що вісь Y вказує вниз, як це прийнято в комп’ютерній графіці).- Parameters:
x (
number
) – координата xy (
number
) – координата yangle (
number
) – кут (в градусах)
- Return type:
number or number
Usage:
1local x, y = math.rotate(1, 0, 45) 2print(x, y) -- Виведе 0, 1