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,