MathUtils

Объект с несколькими математическими функциями.

Functions

.clamp(value : Float, min : Float, max : Float) → Float

value — Значение, которое необходимо ограничить.
min — Минимальное значение.
max — Максимальное значение.

Ограничевает значение value в диапазоне от min до max.

.degToRad(degrees : Float) → Float

Преобразует градусы в радианы.

.euclideanModulo(n : Integer, m : Integer) → Integer

n, m — Целые числа

Вычисляет Euclidean modulo m % n, то есть: ((n % m) + m) % m

.generateUUID() → UUID

Генерирует UUID (универсальный уникальный идентификатор).

.isPowerOfTwo(n : Number) → Boolean

Возвращает true, если n является степенью 2.

.lerp(x : Float, y : Float, t : Float) → Float

x — Начальная точка.
y — Конечная точка.
t — коэффициент интерполяции в замкнутом интервале [0, 1].

Возвращает linearly interpolated из двух известных точек на основе заданного интервала - t = 0 вернет x и t = 1 вернет y.

.mapLinear(x : Float, a1 : Float, a2 : Float, b1 : Float, b2 : Float) → Float

x — Значение для отображения.
a1 — Минимальное значение для диапазона A.
a2 — Максимальное значение для диапазона A
b1 — Минимальное значение для диапазона B.
b2 — Максимальное значение для диапазона B.

Линейное отображение x из диапазона [a1, a2] в диапазон [b1, b2].

.ceilPowerOfTwo(n : Number) → Integer

Возвращает наименьшую степень 2, которая больше или равна n.

.floorPowerOfTwo(n : Number) → Integer

Возвращает наибольшую степень 2, которая меньше или равна n.

.radToDeg(radians : Float) → Float

Конвертирует радианы в градусы.

.randFloat(low : Float, high : Float) → Float

Случайный поплавок в интервале [low, high].

.randFloatSpread(range : Float) → Float

Случайный поплавок в интервале [- range / 2, range / 2].

.randInt(low : Integer, high : Integer) → Integer

Случайное целое число в интервале [low, high].

.seededRandom(seed : Integer) → Float

Детерминированное псевдослучайное число с плавающей точкой в интервале [0, 1]. Целое число seed необязательно.

.smoothstep(x : Float, min : Float, max : Float) → Float

x — Значение для оценки на основе его положения между min и max.
min — Любое значение x ниже min будет равно 0.
max — Любое значение x, превышающее max, будет равно 1.

Возвращает значение от 0 до 1, которое представляет процент того, что x переместился между min и max, но сглаживается или замедляется, чем ближе X к min и max.

Для дополнительной информации ознакомьтесь с Smoothstep.

.smootherstep(x : Float, min : Float, max : Float) → Float

x — Значение для оценки на основе его положения между min и max.
min — Любое значение x ниже min будет равно 0.
max — Любое значение x, превышающее max, будет равно 1.

Возвращает значение в диапазоне 0-1. variation on smoothstep которая имеет нулевые производные первого и второго порядка при x=0 и x=1.

.setQuaternionFromProperEuler(q : Quaternion, a : Float, b : Float, c : Float, order : String) → null

q — кватернион, который необходимо установить
a — поворот, применимый к первой оси, в радианах
b — поворот, применимый ко второй оси, в радианах
c — поворот, применимый к третьей оси, в радианах
order — строка, определяющая порядок осей: 'XYX', 'XZX', 'YXY', 'YZY', 'ZXZ', или 'ZYZ'

Задает q из intrinsic Proper Euler Angles, определяемый углами a, b, и c, и порядком order.
Вращения применяются к осям в порядке, указанном order: сначала применяется вращение на угол a, затем на угол b, затем на угол c. Углы указаны в радианах.

Исходный файл

О том как получить исходный код этого модуля читайте тут.