MathUtils

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

Функции

.angleToRange_0_2Pi(angle : Float) → Float

Конвертирует угол в интервал [0, 2π).

v3d.MathUtils.angleToRange_0_2Pi(0.5 * Math.PI) // → 1.570796 = 1/2 π v3d.MathUtils.angleToRange_0_2Pi(-0.5 * Math.PI) // → 4.712388 = 3/2 π v3d.MathUtils.angleToRange_0_2Pi(2 * Math.PI) // → 0 v3d.MathUtils.angleToRange_0_2Pi(3 * Math.PI) // → 3.141592 = π v3d.MathUtils.angleToRange_0_2Pi(10 * Math.PI) // → 0

.angleToRange_mPi_Pi(angle : Float) → Float

Конвертирует угол в интервал [-π, π).

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

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

.clampAngle(angle : Float, minAngle : Float, maxAngle : Float) → Float

Ограничивает значение угла между minAngle и maxAngle.

.degToRad(degrees : Float) → Float

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

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

n, m — целые числа.

Вычисляет модуль Евклида m % n, то есть:

((n % m) + m) % m

.expAverage(valueFrom : Float, valueTo : Float, sampleTime : Float, time : Float) → Float

Производит экспоненциальное сглаживание указанного значения.

.expAverageClamp(valueFrom : Float, valueTo : Float, sampleTime : Float, time : Float, clampDelta : Float) → Float

Производит экспоненциальное сглаживание указанного значения, ограничивая значения, меньшие чем clampDelta.

.generateUUID() → UUID

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

.isPowerOfTwo(n : Integer) → Boolean

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

.inverseLerp(x : Float, y : Float, value : Float) → Float

Возвращает процентное значение в интервале [0, 1] для указанного числа между начальной и конечной точками.

.hashString(str : String) → Integer

Вычисляет 32-битную контрольную сумму строки.

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

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

.damp(x : Float, y : Float, lambda : Float, dt : Float) → Float

Плавно интерполирует число от x к y подобно пружине, с использованием значения dt, служащего для реализации движения, не зависящего от частоты кадров. Смотрите подробности тут.

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

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

.pingpong(x : Float, length : Float) → Float

Возвращает значение, колеблющееся от 0 до length : Float.

.ceilPowerOfTwo(n : Float) → Integer

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

.floorPowerOfTwo(n : Float) → 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

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

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

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

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

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

Задает кватернион из внутренних углов Эйлера, определяемых углами a, b, и c, и порядком order.

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

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

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