目录
前边的文章整理了二维平面中的几何变换的相关知识,其实在三维中,大部分操作都可以拿二维变换来进行类比。
1、3D齐次坐标和齐次矩阵
1.1、3D齐次坐标
引入第四坐标,将三维坐标扩充为四维表示
,其中
,齐次参数为非零任意值,为了方便,一般设置h=1。所以在3D中点和向量分辨表示为:
3D点:。
3D向量:。
1.2、3D齐次矩阵
3D中,齐次矩阵是一个4X4的矩阵:
上式中左上角:为3D中的线性变换矩阵。
右上角:为平移向量。
仿设变换中,最下面一行固定为:0 0 0 1。
齐次矩阵是先平移再线性变换还是先线性变换再平移?因为我们知道
等价于
所以实际上,是先做的线性变换,然后再进行平移。
2、齐次坐标形式下3D几何变换
2.1、3D缩放
缩放矩阵:。
若缩放点不是原点,需要先把缩放点平移到原点,再进行缩放,等缩放结束,再平移回去。
2.2、3D平移
平移矩阵:。
2.3、3D旋转
3D中旋转情况相对复杂。在2D中,旋转只能绕着垂直于xy平面的的轴进行旋转,但是在3D中,可以分别绕x轴、y轴、z轴及3D中其他任意轴进行旋转。
2.3.1、绕坐标轴旋转
绕x轴的旋转矩阵(x轴值不变):。
绕y轴的旋转矩阵(y轴值不变):
绕z轴的旋转矩阵(z轴值不变):
注:如果已知绕z轴的旋转矩阵,有一个更便捷的方法可以得到绕x轴、绕y轴的旋转矩阵。绕z轴旋转时,写成方程的形式为: