三维数学基础3:基础变换矩阵
任何仿射变换矩阵都能由一连串表示纯平移、纯旋转、纯缩放或纯切变的4x4矩阵串接而成。
以下针对点A = [ A x A y A z 1 ] \begin{bmatrix} Ax & Ay & Az & 1 \end{bmatrix} [AxAyAz1]进行基础变换的演示。
平移变换
对点A向T矢量 [ T x T y T z ] \begin{bmatrix} Tx & Ty & Tz \end{bmatrix} [TxTyTz]方向进行平移:
M o v e ( A , T ) = [ A x A y A z 1 ] [ 1 0 0 0 0 1 0 0 0 0 1 0 T x T y T z 1 ] Move(A,T) = \begin{bmatrix} Ax & Ay & Az & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & 1 & 0 & 0\\ 0 & 0 & 1 & 0\\ Tx & Ty & Tz & 1 \end{bmatrix} Move(A,T)=[AxAyAz1]⎣⎢⎢⎡100Tx010Ty001Tz0001⎦⎥⎥⎤
= [ ( A x + T x ) ( A y + T y ) ( A z + T z ) 1 ] = \begin{bmatrix} ( Ax + Tx ) & ( Ay + Ty ) & ( Az + Tz ) & 1 \end{bmatrix} =[(Ax+Tx)(Ay+Ty)(Az+Tz)1]
旋转变换
对点A绕x轴旋转 θ \theta θ角度:
R o t a t e X ( A , θ ) = [ A x A y A z 1 ] [ 1 0 0 0 0 c o s θ s i n θ 0 0 − s i n θ c o s θ 0 0 0 0 1 ] RotateX(A,\theta) = \begin{bmatrix} Ax & Ay & Az & 1 \end{bmatrix} \begin{bmatrix} 1 & 0 & 0 & 0\\ 0 & cos\theta & sin\theta & 0\\ 0 & -sin\theta & cos\theta & 0\\ 0 & 0 & 0 & 1 \end{bmatrix} RotateX(A,θ)=[AxAy