ApplyMatrix コマンド

ApplyMatrix( <行列>, <オブジェクト> )

オブジェクト O 上の点 P が次のようにマッピングされるように,オブジェクト O を変換する:

  • P2次元 点であり,M が2×2行列である場合,点 P を点 M*P にマッピング

M={{cos(π/2),-sin(π/2)}, {sin(π/2), cos(π/2)}} を変換行列,u = (2,1) をベクトルとする(オブジェクト).ApplyMatrix(M,u) はベクトル u'=(-1,2) を返す.すなわち,ベクトル u を数学的に90° 正の方向に回転させた結果である.

  • P2次元点であり,M が3×3行列である場合,P(x,y)より M(x,y,1) =(x’, y’,z’) として,(x,y)(x/z, y/z)にマッピング

行列 M={{1,1,0},{0,1,1},{1,0,1}} とベクトル u=(2,1) とする. ApplyMatrix(M,u) はベクトル u'=(1,0.67)を返す.\(\begin{pmatrix}1&1&0\\ 0&1&1\\1&0&1 \end{pmatrix}\) \(\begin{pmatrix}2\\ 1\\1 \end{pmatrix}\) = \(\begin{pmatrix}3\\ 2\\3 \end{pmatrix}\) である. (3/3 = 1, 2/3 ≈ 0.67) (小数点第2位四捨五入)

  • P3次元 点であり,M が3×3行列である場合,点 P を点 M*P にマッピング

  • P3次元 点であり,M が2×2行列である場合,M = \(\begin{pmatrix}a&b\\ c&d \end{pmatrix}\) から N = \(\begin{pmatrix}a&b&0\\ c&d&0\\0&0&1 \end{pmatrix}\) を作り,点 P を点 N*P にマッピング

このコマンドは四角形や画像でも機能する.変換行列の行列式が0の場合,"未定義"を返す.