Класс, определяющий матрицу 3x3.
const m = new Matrix3();
Метод set() принимает аргументы в порядке row-major, а внутренне они хранятся в массиве elements в порядке колонок.
Это означает, что вызов:
m.set(11, 12, 13,
21, 22, 23,
31, 32, 33);
приведет к созданию массива elements, содержащего:
m.elements = [11, 21, 31,
12, 22, 32,
13, 23, 33];
и внутри все вычисления выполняются с использованием упорядочивания по столбцам. Однако, поскольку фактический порядок не имеет математического значения, а большинство людей привыкли думать о матрицах в порядке возрастания строк, в документации Verge3D матрицы показаны в порядке возрастания строк. Просто имейте в виду, что если вы читаете исходный код, вам придется изучить transpose любых матриц, описанных здесь, чтобы понять смысл вычислений.
Создает и инициализирует матрицу Matrix3 в единичную матрицу 3x3.
Список column-major значений матрицы.
Создает новую матрицу Matrix3 и с элементами, идентичными данной матрице.
Копирует элементы матрицы m в данную матрицу.
Вычисляет и возвращает определитель данной матрицы.
Возвращает true, если эта матрица и m равны.
Извлекает базис текущей матрицы в три предоставленных осевых вектора. Если текущая матрица является:
a, b, c,
d, e, f,
g, h, i
то для xAxis, yAxis, zAxis будут установлены значения:
xAxis = (a, d, g)
yAxis = (b, e, h)
zAxis = (c, f, i)
0.Устанавливает элементы этой матрицы на основе массива в формате column-major.
Инвертирует текущую матрицу, используя аналитический метод.
Вы не можете инвертировать матрицу с детерминантом, равным нулю. Если вы попытаетесь это сделать, метод выдаст нулевую матрицу.
Устанавливает левую верхнюю часть 3x3 текущей матрицы как нормальную матрицу на основе переданной матрицы. Нормальная матрица является инвертированным транспонированием матрицы m.
Сбрасывает текущую матрицу в единичную 3x3:
1, 0, 0
0, 1, 0
0, 0, 1
theta — угол поворота в радианах. Положительные значения вращают против часовой стрелки.
Устанавливает 2Д-поворот в текущей матрице на theta радиан. Результирующая матрица будет иметь вид:
cos(θ) -sin(θ) 0
sin(θ) cos(θ) 0
0 0 1
Устанавливает 2Д-масштабирование в текущей матрице:
x, 0, 0,
0, y, 0,
0, 0, 1
Устанавливает 2Д-перемещение в текущей матрице:
1, 0, x,
0, 1, y,
0, 0, 1
Умножает текущую матрицу на m справа.
Устанавливает текущую матрицу в a x b.
Умножает каждый компонент матрицы на скалярное значение s.
Поворачивает матрицу на указанный угол в радианах.
Масштабирует матрицу на указанные значения.
Устанавливает матрицу 3x3 с использованием указанной последовательности row-major значений.
Умножает текущую матрицу на m слева.
Устанавливает текущую матрицу в верхнюю левую 3x3 часть матрицы m.
Устанавливает матрицу трансформации UV из смещения, повтора, вращения и центра.
Записывает элементы данной матрицы в массив в формате column-major.
Перемещает матрицу на указанные скалярные значения.
Транспонирует текущую матрицу.
array — массив для хранения результирующей матрицы.
Транспонирует текущую матрицу в заданный массив и возвращает её без изменений.
О том как получить исходный код этого модуля читайте тут.