Matrix link

class Matrix(l) link

これはRen'Pyの様々な場面で使用される4x4のマトリックスを表します。

座標変換に使用されると、このマトリックスの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 で回転やスケーリングとの組み合わせを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)
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,
Matrix.identity() link

マトリックスの識別子を返します。

Matrix.offset(x, y, z) link

頂点を固定量オフセットするマトリックスを返します。

Matrix.perspective(w, h, n, p, f) link

Ren'Py の座標系での画像の透視投影に最適なマトリックスを返します。ここで z=0 であるとき、 (0, 0) は画面の左上に、 (w, h) は右下に対応します。

w, h

入力平面の幅と高さのピクセル数です。

n

カメラからの near 面の距離です。

p

z=0 の面のカメラからの距離です。これは x, y の座標単位に1つの仮想のピクセル座標を加えます。

f

カメラからの far 面の距離です。

Matrix.rotate(x, y, z) link

原点中心で displayable を回転するマトリックスを返します。

x, y, z

原点を中心に回転数する度数法での量です。

回転は以下の順で適用されます。 :

  • Y/Z 面で x 度時計回りに回転します。

  • Z/X 面で y 度時計回りに回転します。

  • X/Y 面で z 度時計回りに回転します。

Matrix.scale(x, y, z) link

displayable をスケーリングするマトリックスを返します。

x, y, z

各軸に対するスケーリングファクターです。