Matrix link
- class Matrix(l) link
该类是一种4×4矩阵,在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’是变换值。其他的y、z和w值类似。 常见的情况是w的值为1,在一个矩阵中就可以实现坐标的位移、旋转和缩放的组合变换。
When used to transform colors, the 16 elements of this matrix are 用作色彩变换时,矩阵的16个元素是:
rdr, rdg, rdb, rda, gdr, gdg, gdg, gda, bdr, bdg, bdb, bda, adr, adg, adb, ada,
分别对用红绿蓝和alpha通道。
使用Python乘法运算符可以实现矩阵对象相乘,并实现多个矩阵的功能。矩阵相乘时,矩阵的顺序会影响最终效果。 假设 v 是一个待变换的坐标或色彩:
(step2 * step1) * v
等效于:
step2 * (step1 * v)
- l
该值是一个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,