Матрица (Matrix)
Перейти к навигации
Перейти к поиску
- Matrix(/)
- Представляет собой матрицу 4x4, которая используется в различных местах Ren'Py.
- Для преобразования координат используют 16 элементов этой матрицы:
xdx, xdy, xdz, xdw, ydx, ydy, ydz, ydw, zdx, zdy, zdz, zdw, wdx, wdy, wdz, wdw
- где x' = xdx * x + xdy * y + xdz * z + xdw * w, где x - исходное значение x, а x' - преобразованное значение, и аналогично для x, y, z и w. Обычно это применяется к позиции, где w равно 1, что позволяет выразить любую комбинацию перемещения, поворота и масштабирования в одной матрице.
- При преобразование цветов используют 16 элементов этой матрицы:
rdr, rdg, rdb, rda, gdr, gdg, gdg, gda, bdr, bdg, bdb, bda, adr, adg, adb, ada,
- Для красного, зелёного, синего и альфа-каналов.
- Матричные объекты можно перемножать с помощью оператора умножения языка Python, для создания матрицы, которая выполняет обе операции. Порядок, в котором появляются матрицы, может иметь значение. Предположим, что v - это позиция или цвет, которые преобразуются:
(step2 * step1) * v
- это эквивалентно:
step2 * (step1 * v)
- /
-
- Это может быть список из 4, 9 или 16 чисел, который используется для введения этой матрицы. Если не все 16, инициализируется верхний левый угол матрицы, при этом zdz и wdw устанавливаются в 1.0, если не заданы. Например:
Matrix([ 1, 2, 3, 4 ])
- приведёт к появлению Матрицы:
1.0, 2.0, 0.0, 0.0, 3.0, 4.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0, 0.0, 1.0,
Matrix.identity()
- Возвращает матрицу идентичности.
Matrix.offset(x, y, z)
- Возвращает матрицу, которая смещает вершину на фиксированную величину.
Matrix.perspective(w, h, n, p, f)
- Возвращает матрицу, подходящую для перспективной проекции изображения в системе координат Ren'Py. Это вид в системе координат, в котором z=0, (0, 0) соответствует левому верхнему углу экрана, а (w, h) - правому нижнему углу экрана.
- w, h
-
- Ширина и высота входной плоскости в пикселях.
- n
-
- Расстояние ближней плоскости от камеры.
- p
-
- На каком расстоянии от камеры находится плоскость z=0. Здесь также один виртуальный пиксель равен одной координатной единице по x и y.
- f
-
- Расстояние дальней плоскости от камеры.
Matrix.rotate(x, y, z)
- Возвращает матрицу, которая вращает отображаемый объект вокруг начала координат.
- x, y, z
-
- Величина поворота вокруг начала координат в градусах.
- Вращения применяются в следующем порядке:
- Поворот по часовой стрелке на x градусов в плоскости Y/Z.
- Поворот по часовой стрелке на y градусов в плоскости Z/X.
- Поворот по часовой стрелке на z градусов в плоскости X/Y.
Matrix.scale(x, y, z)
- Возвращает матрицу, которая масштабирует отображаемый объект.
- x, y, z
-
- Коэффициент, на который масштабируется каждая ось.
Источник[править | править код]
Статья "Matrix" на английском языке.
На главную страницу | Официальная документация движка | Вернуться к началу статьи |