二次元座標(X,Y座標)の場合のアフィン変換行列についてはこちらで説明しましたが、今回は三次元座標(X,Y,Z座標)のアフィン変換となります。
三次元座標の場合、まず座標軸の定義、回転方向の定義を明確に覚えます。
この座標は右手座標系と呼ばれます。
フレミングの法則のときのように右手で親指、人差し指、中指をそれぞれ
直交するようにします。
このとき親指から順に親指がX軸、人差し指がY軸、中指がZ軸の方向と
なります。
回転方向は電流と磁界の向きと同じように電流が軸の向き、磁界が回転方向
に相当します。(右ねじの法則と同じです。)
回転行列
三次元の回転行列の前に二次元の回転行列のおさらいです。
二次元の回転行列は以下の通りとなります。
これをベースに三次元座標の場合では、回転する軸の正の方向から原点の方向を見たときに、X軸、Y軸はそれぞれ何軸に相当するのか?を考えれば、二次元座標のXやYの変数の置き換えで導き出すことができます。
行列変換しない軸に関しては単位行列でそのまま残します。
【X軸周りの回転】
【Y軸周りの回転】
【Z軸周りの回転】
拡大縮小行列
点(x, y, z)を原点に関してX軸方向にSX倍、Y軸方向にSY倍、Z軸方向にSZ倍する行列は
平行移動行列
点(x, y, z)をX軸方向にTX、Y軸方向にTY、Z軸方向にTZだけ移動する行列は
補足
三次元の座標変換に関して検索すると座標変換は下記のように
行ベクトルで表記される場合もあるのですが、変換行列の値が変わるので、
混同しないようご注意下さい。
この表現はマイクロソフトがお得意で、DirectX(Direct3D)や.NETのアフィン変換でしか使われないので、特に必要の無い場合は覚えない方が無難です。
関連記事
二次元座標のアフィン変換についてはこちら↓にまとめています。