平行移動
図形を \(x, y, z\) 軸方向にそれぞれ \(t_x, t_y, t_z\) 移動させる変換は以下のように表わされる
\(
\begin{pmatrix}
x' \\ y' \\ z' \\ 1
\end{pmatrix}
=
\begin{pmatrix}
1 & 0 & 0 & t_x\cr
0 & 1 & 0 & t_y\cr
0 & 0 & 1 & t_z\cr
0 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
x \\ y \\ z \\ 1
\end{pmatrix}
\)
拡大・縮小
原点を中心に図形を \(x, y, z\) 軸方向にそれぞれ \(s_x, s_y, s_z\) 倍に拡大あるいは縮小する変換は以下のように表わされる
\(
\begin{pmatrix}
x' \\ y' \\ z' \\ 1
\end{pmatrix}
=
\begin{pmatrix}
s_x & 0 & 0 & 0\cr
0 & s_y & 0 & 0\cr
0 & 0 & s_z & 0\cr
0 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
x \\ y \\ z \\ 1
\end{pmatrix}
\)
回転
以下のいずれも軸の正方向から原点を見たときに反時計回りを回転の正方向とする
x軸まわりに図形を \(\theta\) 回転させる変換は以下のように表わされる
\(
\begin{pmatrix}
x' \\ y' \\ z' \\ 1
\end{pmatrix}
=
\begin{pmatrix}
1 & 0 & 0 & 0\cr
0 & \cos\theta & -\sin\theta & 0\cr
0 & \sin\theta & \cos\theta & 0\cr
0 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
x \\ y \\ z \\ 1
\end{pmatrix}
\)
y軸まわりに図形を \(\theta\) 回転させる変換は以下のように表わされる
\(
\begin{pmatrix}
x' \\ y' \\ z' \\ 1
\end{pmatrix}
=
\begin{pmatrix}
\cos\theta & 0 & \sin\theta & 0\cr
0 & 1 & 0 & 0\cr
-\sin\theta & 0 & \cos\theta & 0\cr
0 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
x \\ y \\ z \\ 1
\end{pmatrix}
\)
z軸まわりに図形を \(\theta\) 回転させる変換は以下のように表わされる
\(
\begin{pmatrix}
x' \\ y' \\ z' \\ 1
\end{pmatrix}
=
\begin{pmatrix}
\cos\theta & -\sin\theta & 0 & 0\cr
\sin\theta & \cos\theta & 0 & 0\cr
0 & 0 & 1 & 0\cr
0 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
x \\ y \\ z \\ 1
\end{pmatrix}
\)
z軸まわりの回転の行列の1, 2行目、1, 2列目の並びは2次元回転の行列と同じ。
x軸まわりの回転の行列は、z軸まわりの回転の行列の1~3行目を下にずらして3行目を一番上に移動させ、1~3列目を右にずらして3列目を一番左に移動させれば得られる。
y軸まわりの回転の行列も同様にしてx軸まわりの回転の行列をもとにずらせば得られる。
このほかに鏡映とスキューの変換行列もあるが、少なくとも2018年後期からはそれらにかかわる問題は出題されていない
変換の合成
続けて行われる複数の変換は、変換行列の積で表わされる
後から行われる変換の行列を左、先に行われる変換の行列を右にして行列の積を計算する。
一般に、行列の積は左右の位置によって結果が変わるので順番に注意が必要。
(行列の積の計算の方法が不安な場合は、「行列 積」などで検索して方法を確認する)
例 (x方向に1移動し、y軸まわりに90°回転する)
\(
\begin{pmatrix}
x' \\ y' \\ z' \\ 1
\end{pmatrix}
=
\begin{pmatrix}
0 & 0 & 1 & 0\cr
0 & 1 & 0 & 0\cr
-1 & 0 & 0 & 0\cr
0 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
1 & 0 & 0 & 1\cr
0 & 1 & 0 & 0\cr
0 & 0 & 1 & 0\cr
0 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
x \\ y \\ z \\ 1
\end{pmatrix}
\)
\(
=
\begin{pmatrix}
0 & 0 & 1 & 0\cr
0 & 1 & 0 & 0\cr
-1 & 0 & 0 & -1\cr
0 & 0 & 0 & 1
\end{pmatrix}
\begin{pmatrix}
x \\ y \\ z \\ 1
\end{pmatrix}
\)