三维几何变换

1、简介

三维平移变换、比例变换可看成是二维情况的直接推广。但旋转变换则不然,因为我们可选取空间任意方向作旋转轴,因此三维变换处理起来更为复杂。
与二维变换相似,我们也采用齐次坐标技术来描述空间的各点坐标及其变换,这时,描述空间三维变换的变换矩阵是4×4的形式。由此,一系列变换可以用单个矩阵来表示。

2、基本三维几何变换

2.1、平移变换

若空间平移量为,则平移变换为:

图片.png


补充说明:点的平移、物体的平移、多面体的平移、逆变换

2.2、比例变换

(1)相对坐标原点的比例变换
一个点P=(x,y,z)相对于坐标原点的比例变换的矩阵可以表示为:


图片.png


其中,为正值。
(2)相对于所选固定的点的比例变换

图片.png

2.3、绕坐标轴的旋转

三维空间中的旋转变换比二维空间中的旋转变换复杂。除了需要指定旋转角外,还需指定旋转轴。
若以坐标系的三个坐标轴x,y,z分别作为旋转轴,则点实际上只在垂直坐标轴的平面上作二维旋转。此时用二维旋转公式就可以直接推出三维旋转变换矩阵。
规定在右手坐标系中,物体旋转的正方向是右手螺旋方向,即从该轴正半轴向原点看是逆时针方向。

(1)绕z轴旋转

图片.png

(2)绕x轴旋转

图片.png

(3)绕y轴旋转

图片.png

2.4、旋转矩阵规律

对于单位矩阵,
图片.png

绕那个坐标轴旋转,则该坐标轴的一列元素不变,按照二维图形变换的情况,将其旋转矩阵


图片.png

中的元素添入相应的位置中

(1)绕Z轴正向旋转角,旋转点的z坐标值不变,x,y坐标的变换相当于在XOY平面内作角旋转。
单位矩阵中添入二维旋转矩阵。

图片.png

(2)绕X轴正向旋转角,旋转点的x坐标值不变,y,z坐标的变换相当于在YOZ平面内作角旋转。
单位矩阵中添入二维旋转矩阵。

(2)绕Y轴正向旋转角,旋转点的y坐标值不变,x,z坐标的变换相当于在XOZ平面内作角旋转。
单位矩阵中添入二维旋转矩阵。

3、组合变换

1、物体绕平行于某一坐标轴的旋转变换。基本步骤:
(1) 平移物体使旋转轴与所平行的坐标轴重合;
(2) 沿着该坐标轴进行指定角度的旋转;
(3) 平移物体使旋转轴移回到原位置。


图片.png

图片.png

图片.png

图片.png
图片.png

2、绕任意轴旋转的变换
(1)平移物体使旋转轴通过坐标原点;


图片.png

(2)旋转物体使旋转轴与某个坐标轴(如Z轴)重合;


图片.png

(3)关于该坐标轴进行指定角度的旋转;


图片.png

(4)应用逆旋转变换将旋转轴回到原方向
图片.png

(5)应用逆平移变换将旋转轴变换到原位置。


图片.png

例子
求变换,使过原点的向量V=(a,b,c)与Z轴的正向一致。

图片.png

实现步骤:
(1)将V绕X轴旋转到XOZ平面上;
(2)再绕Y轴旋转使之在与Z轴正向重合。
旋转角度的确定:绕X轴旋转的角度等于向量V在YOZ平面上的投影向量与Z轴正向的夹角。
图片.png

根据矢量的点乘与叉乘,可以算出:

因此,

类似地,可以求出:

R_y(\beta)=\left[ \begin{matrix} \frac{\sqrt{b^2+c^2}}{\sqrt {a^2 +b^2+c^2}}& 0& \frac{a}{\sqrt {a^2 +b^2+c^2}}&0\\ 0&1& 0&0 \\ -\frac{a}{\sqrt {a^2 +b^2+c^2}}&0&\frac{\sqrt{b^2+c^2}}{\sqrt {a^2 +b^2+c^2}}&0 \\ 0&0& 0&1 \\ \end{matrix} \right]

利用这一结果,则绕任意轴旋转的变换矩阵可表示为:

图片.png

图片.png

图片.png

4.1、绕任意轴旋转变换的简单算法

给定具有单位长的旋转轴和旋转角,则物体绕OA轴旋转变换的矩阵可确定如下:

图片.png




其中表示M的转置矩阵。
利用这一结果,则绕任意旋转的变换矩阵可表示为:

图片.png


其中旋转轴为
传统的方法通过绕坐标轴旋转变换的乘积表示绕任意轴旋转的变换。与之相比,这种方法更直观。

4.2、三维变换矩阵的功能分块

图片.png

(1)三维线性变换部分
(2)三维平移变换部分
(3)透视变换部分
(4)整体比例因子

5、三维坐标变换

几何变换:在一个参考坐标系下将物体从一个位置移动到另一个位置的变换。
坐标变换: 一个物体在不同坐标系之间的坐标变换。如从世界坐标系到观察坐标系的变换;观察坐标到设备坐标之间的变换。再如,对物体造型时,我们通常在局部坐标系中构造物体,然后重新定位到用户坐标系。
坐标变换的构造方法:
与二维的情况相同,为将物体的坐标描述从一个系统转换为另一个系统,我们需要构造一个变换矩阵,它能使两个坐标系统重叠。具体过程分为两步:
(1)平移坐标系统oxyz,使它的坐标原点与新坐标系统的原点重合;
(2)进行一些旋转变换,使两坐标系的坐标轴重叠。
有多种计算坐标变换的方法,下面我们介绍一种简单的方法。

图片.png

设新坐标系原点的坐标为,相对于原坐标系其单位坐标矢量为:

将原坐标系下的坐标转化成新坐标系的坐标可由以下两步完成:
首先,平移坐标系,使其原点与新坐标系的原点重合;
图片.png

平移矩阵为:

第二步,利用单位坐标向量构造坐标旋转矩阵

该矩阵R将单位向量分别变换到X,Y,Z轴。
综合以上两步,从到的坐标变换矩阵为:,也即坐标变换公式为:

说明:变换矩阵TR将一个直角坐标系变换为另一个坐标系。即使一个坐标系是右手坐标系,另一个为左手坐标系,结论依然成立。

你可能感兴趣的:(三维几何变换)