1、简介
三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
与二维变换相似,我们也采用齐次坐标技术来描述空间的各点坐标及其变换,这时,描述空间三维变换的变换矩阵是4×4的形式。由此,一系列变换可以用单个矩阵来表示。
2、基本三维几何变换
2.1、平移变换
若空间平移量为 ( t x , t y , t z ) (t_x,t_y,t_z) (tx,ty,tz),则平移变换为:
{ x ‘ = x + t x y ‘ = y + t y z ‘ = z + t z \begin{cases} \ x^`=x+t_x \ \\ y^`=y+t_y \ \\z^`=z+t_z \end{cases} ⎩⎪⎨⎪⎧ x‘=x+tx y‘=y+ty z‘=z+tz
( x ‘ , y ‘ , z ‘ , 1 ) = ( x , y , z , 1 ) [ 1 0 0 0 0 1 0 0 0 0 1 0 t x t y t z 1 ] (x^`,y^`,z^`,1)=(x,y,z,1)\left[ \begin{matrix} 1& 0& 0&0\\ 0& 1& 0&0 \\ 0& 0& 1&0 \\ t_x&t_y& t_z&1 \\ \end{matrix} \right] (x‘,y‘,z‘,1)=(x,y,z,1)⎣⎢⎢⎡100tx010ty001tz0001⎦⎥⎥⎤
补充说明:点的平移、物体的平移、多面体的平移、逆变换
2.2、比例变换
(1)相对坐标原点的比例变换
一个点P=(x,y,z)相对于坐标原点的比例变换的矩阵可以表示为:
( x ‘ , y ‘ , z ‘ , 1 ) = ( x , y , z , 1 ) [ S x 0 0 0 0 S y 0 0 0 0 S z 0 t x t y t z 1 ] (x^`,y^`,z^`,1)=(x,y,z,1)\left[ \begin{matrix} S_x& 0& 0&0\\ 0&S_y& 0&0 \\ 0& 0& S_z&0 \\ t_x&t_y& t_z&1 \\ \end{matrix} \right] (x‘,y‘,z‘,1)=(x,y,z,1)⎣⎢⎢⎡Sx00tx0Sy0ty00Sztz0001⎦⎥⎥⎤
x ‘ = x S x , y ‘ = y S y , z ‘ = z S z x^`=xS_x, y^`=yS_y ,z^`=zS_z x‘=xSx,y‘=ySy,z‘=zSz
其中, S x , S y , S z S_x,S_y,S_z Sx,Sy,Sz为正值。
(2)相对于所选固定的点的比例变换
T ( − x f , − y f , − z f ) S ( s x , s y , s z ) T ( x f , y f , z f ) = [ S x 0 0 0 0 S y 0 0 0 0 S z 0 ( 1 − s x ) x f ( 1 − s y ) y f ( 1 − s z ) z f 1 ] T(-x_f,-y_f,-z_f)S(s_x,s_y,s_z)T(x_f,y_f,z_f)=\left[ \begin{matrix} S_x& 0& 0&0\\ 0&S_y& 0&0 \\ 0& 0& S_z&0 \\ (1-s_x)x_f&(1-s_y)y_f& (1-s_z)z_f&1 \\ \end{matrix} \right] T(−xf,−yf,−zf)S(sx,sy,sz)T(xf,yf,zf)=⎣⎢⎢⎡Sx00(1−sx)xf0Sy0(1−sy)yf00Sz(1−sz)zf0001⎦⎥⎥⎤
2.3、绕坐标轴的旋转
三维空间中的旋转变换比二维空间中的旋转变换复杂。除了需要指定旋转角外,还需指定旋转轴。
若以坐标系的三个坐标轴x,y,z分别作为旋转轴,则点实际上只在垂直坐标轴的平面上作二维旋转。此时用二维旋转公式就可以直接推出三维旋转变换矩阵。
规定在右手坐标系中,物体旋转的正方向是右手螺旋方向,即从该轴正半轴向原点看是逆时针方向。
(1)绕z轴旋转
{ x ‘ = x c o s γ − y s i n γ y ‘ = x s i n γ + y c o s γ z ‘ = z \begin{cases} \ x^`=x cos\gamma-y sin\gamma \ \\ y^`=xsin\gamma+ycos\gamma \ \\z^`=z \end{cases} ⎩⎪⎨⎪⎧ x‘=xcosγ−ysinγ y