欧氏空间标准正交基的几种求法,解析几何:三、点变换和坐标变换

本文并非对解析几何进行专业的介绍,而是学习计算机图形学的数学笔记,主要参考北京大学出版邱维声著《解析几何》,在内容上有所取舍。

在初等几何就学过了几何图形的平移、旋转、缩放变换。到了解析几何,一切几何问题都可以归结为代数问题。在线性代数与线性空间的文档中就介绍了变换这一概念,所谓的变换就是一个集合内部元素之间的映射。任何几何图形都可以看成一个点集,那么图形的旋转、缩放、平移变换就可以看成是对图形中每一个点施加变换。在普通三维欧氏空间点与向量的形式是一样的,所以点变换也可归结为向量的变换。向量变换最熟悉的就是线性变换,旋转和缩放就是两种具体的线性变换。向量的平移是没有意义的,但点的平移是有意义的,下面会介绍平移变换是一种具体的仿射变换

此外在用向量和矩阵工具研究几何问题前需要明确选用的坐标系,坐标系的选择直接影响了问题的复杂度。在实际问题中,我们常常需要知道同一个点(或向量)在不同坐标系下的坐标,因此我们需要明确图形的坐标变换。比如在光栅化图形流水线中,我们想要知道顶点在模型坐标系,世界坐标系和摄像机坐标系下的坐标,以满足不同的算法需求。在线性代数与线性空间中,已经介绍了坐标系变换的代数形式,这里只是把线性空间限定为三维欧几里得空间。

1 点变换1.1 线性变换

回顾一下线性变换的定义:线性空间 V 的一个变换 \mathscr{A} ,如果对于 V 中任意的元素 \alpha,\ \beta 和数域 F 中任意数 k ,都有:

\mathscr{A}(\alpha + \beta ) = \mathscr{A} (\alpha) + \mathscr{B} (\beta)\\ \mathscr{A}(k\alpha) = k\mathscr{A}(\alpha)

称为线性变换。由定义我们发现,线性变换保持线性关系不变。在初等几何中,就学过了图形的旋转变换和缩放变换,这两类变换是最典型的线性变换。我们知道选定一个仿射坐标系后,一个线性变换可以与一个矩阵建立对应关系,下面介绍旋转变换和缩放变换的变换矩阵。

1.1 旋转变换

下面是三维欧式空间中,选定一组直角坐标系,绕 x,y,z 轴旋转 \theta 角度的旋转变换矩阵:

\begin{aligned} &R_{x}(\theta)=\left(\begin{array}{cccc} 1 & 0 & 0\\ 0 & \cos \theta & -\sin \theta \\ 0 & \sin \theta & \cos \theta \end{array}\right)\\ &R_{y}(\theta)=\left(\begin{array}{llll} \cos \theta & 0 & \sin \theta\\ 0 & 1 & 0\\ -\sin \theta & 0 & \cos \theta\end{array}\right)\\ &R_{z}(\theta)=\left(\begin{array}{llll} \cos \theta & -\sin \theta & 0 \\ \sin \theta & \cos \theta & 0\\ 0 & 0 & 1\end{array}\right) \end{aligned}

可以看到旋转变换是一种线性变换,我们知道旋转变换具有如下性质:

图形内共线的三点变换之后依然是共线的三点图形内不共线的三点变换之后依然不共线共线三点之间的距离变换之后不变图形内相交直线的夹角不变图形的面积不变

1.2 缩放变换

下面是三维欧式空间中,选定一组直角坐标系,沿 x,y,z 方向缩放相应倍数的旋转变换矩阵:

S(s) = S(s_{x},s_{y},s_{z}) = \begin{pmatrix}s_{x} & 0 & 0\\ 0& s_{y} &0\\0 &0& s_{z}\end{pmatrix}

通过旋转变换和缩放变换可以看到线性变换的几何意义:保持几何图形内部点之间的线性关系不变,具体的:

图形内共线的三点变换之后依然是共线的三点图形内不共线的三点变换之后依然不共线共线三点之间的距离之比变换之后不变图形内平行的直线变换之后依然平行,相交的直线依然相交

1.2 正交变换

在文档向量的内积与内积空间中介绍了内积的概念,其中内积为 0 的情况称为正交。下面介绍的正交变换是内积空间中的一种更严格的线性变换,欧式空间是一种内积空间,所以就以欧式空间为例介绍正交变换。

正交变换的代数定义:设 \mathscr{A}n 维欧式空间 R^n 的一个线性变换,若它保持向量的内积不变,即对于任意的 \vec{\alpha},\vec{\beta}\in V ,都有:

(\mathscr{A}\vec{\alpha},\mathscr{A}\vec{\beta}) = (\alpha,\beta)

则称 \mathscr{A}正交变换。正交变换具有以下性质:

保持向量的模不变,即对于任意 \vec{\alpha}\in V ,有 ||\mathscr{A}\vec{\alpha}|| = ||\vec{\alpha}|| 保持两向量的夹角不变,即对于任意 \vec{\alpha},\ \vec{\beta} \in V ,有 (\mathscr{A}\vec{\alpha}, \mathscr{A}\vec{\beta}) = (\alpha,\beta) 如果 \varepsilon_1,\varepsilon_2,\cdots,\varepsilon_n 是标准正交基,那么 \mathscr{A}\varepsilon_1,\mathscr{A}\varepsilon_2,\cdots,\mathscr{A}\varepsilon_n 也是一组标准正交基。任意点 P\varepsilon_1,\varepsilon_2,\cdots,\varepsilon_n下的坐标等于 \mathscr{A}P\mathscr{A}\varepsilon_1,\mathscr{A}\varepsilon_2,\cdots,\mathscr{A}\varepsilon_n下的坐标

通过上述三条性质,我们进一步可以正交变换的几何性质:

图形内共线的三点变换之后依然是共线的三点图形内不共线的三点变换之后依然不共线共线三点之间的距离变换之后不变图形内相交直线的夹角不变图形的面积不变

可以看到正交变换是一种特殊的线性变换,它能保持元素间的“夹角”不变。同样选定一组基之后,正交变换也能对应一个正交变换矩阵。特别的,在 n 维欧式空间中的一组标准正交基下,正交变换矩阵是正交矩阵

1.2.1 正交矩阵

正交矩阵的定义:若一个 n 级方阵 A ,有 AA^T = E ,则称 A正交矩阵。也即 A^T = A^{-1}

由定义可知正交矩阵具有以下性质

A,\ B 都是 n 级别正交矩阵,则 AB 也是正交矩阵若 A 是正交矩阵,则 A^T (或 A^{-1} )也是正交矩阵若 A 是正交矩阵,则 det A = \pm 1

定理A 是正交矩阵的充要条件为 A 的每一行元素的平方和等于 1,每两行对应元素的乘积之和等于 0。即:

\sum^n_{k=1}a^2_{ik} = 1,\quad i=1,2,\cdots,n\\ \sum^n_{k=1}a_{ik}a_{jk} = 0,\quad i\neq j

证明: AA^T 是一个 n\times n 的矩阵中,根据矩阵乘法的定义,其中:

a_{ij} = \sum^n_{k=1}a_{ik}a_{jk},\quad a_{ii} = \sum^n_{k=1}a_{ik}^2

因为 AA^T = E ,那么 a_{ij} = 0,\ a_{ii} = 1

同理可得: A 是正交矩阵的充要条件为 A 的每一列元素的平方和等于 1,每两列对应元素的乘积之和等于 0。

可以验证,旋转变换是一种正交变换,标准正交基下的旋转矩阵是正交矩阵。

\begin{aligned} &R_{x}^{-1}(\theta)=R_{x}^{T}(\theta)=R_{x}(-\theta)=\left(\begin{array}{cccc} 1 & 0 & 0\\ 0 & \cos \theta & \sin \theta \\ 0 & -\sin \theta & \cos \theta\end{array}\right)\\ &R_{y}^{-1}(\theta)=R_{y}^{T}(\theta)=R_{y}(-\theta)=\left(\begin{array}{llll} \cos \theta & 0 & -\sin \theta\\ 0 & 1 & 0 \\ \sin \theta & 0 & \cos \theta\end{array}\right)\\ &R_{z}^{-1}(\theta)=R_{z}^{T}(\theta)=R_{z}(-\theta)=\left(\begin{array}{cccc} \cos \theta & \sin \theta & 0\\ -\sin \theta & \cos \theta & 0\\ 0 & 0 & 1\end{array}\right) \end{aligned}

1.3 仿射变换

仿射变换的定义:设 \sigman 维欧几里得空间中的一个变换, \vec{\alpha},\ \vec{\beta}\in R^n\mathscr{A}R^n 中的一个可逆变换,有 \sigma(\vec{\alpha}) = \mathscr{A}(\vec{\alpha}) + \vec{\beta} ,那么称 \sigma仿射变换

正交矩阵是可逆的,所以所有正交变换都是仿射变换。仿射变换和线性变换一样,具有以下特点:

图形内共线的三点变换之后依然是共线的三点图形内不共线的三点变换之后依然不共线共线三点之间的距离之比变换之后不变

1.3.1 平移变换

平移变换是一种具体的仿射变换,点 P(x,y,z) ,沿着 x 轴, y 轴, z 轴方向平移 t_x,t_y,t_z 个坐标之后到达 P^{\prime}(x^{\prime},y^{\prime},z^{\prime}) ,那么:

(x^{\prime},y^{\prime},z^{\prime}) = (x,y,z)+(t_x,t_y,t_z)

可以发现平移变换是一种 \mathscr{A} 为单位变换的仿射变换,因此平移变换具有如下性质:

图形内共线的三点变换之后依然是共线的三点图形内不共线的三点变换之后依然不共线共线三点之间的距离变换之后不变图形内相交直线的夹角不变图形的面积不变

平移变换有着和正交变换相同性质,也即不改变几何图形的形状,因此旋转变换和平移变换也称为刚体变换

1.3.2 齐次坐标

仿射变换不是线性变换,但仿射变换又与线性变换有着千丝万缕的联系,我们可以给点与向量增加一个维度,使得仿射变换也变成线性变换,给点与向量增加一个维度之后的坐标称为齐次坐标。齐次坐标的准确定义在下一章介绍。

点的齐次坐标:

P=(x,y,z,1)

向量的齐次坐标:

\vec{V}=(x,y,z,0)

在普通欧氏空间下点与向量的形式是一样的,但在齐次坐标下对点与向量做出了区别。其意义是:两点相减,第四维变成了 0,也就变成了向量。那么相应的旋转,缩放和平移变换的矩阵在齐次坐标下的形式为:

旋转变换

\begin{aligned} &R_{x}(\theta)=\left(\begin{array}{cccc} 1 & 0 & 0 & 0 \\ 0 & \cos \theta & -\sin \theta & 0 \\ 0 & \sin \theta & \cos \theta & 0 \\ 0 & 0 & 0 & 1 \end{array}\right)\\ &R_{y}(\theta)=\left(\begin{array}{llll} \cos \theta & 0 & \sin \theta & 0 \\ 0 & 1 & 0 & 0 \\ -\sin \theta & 0 & \cos \theta & 0 \\ 0 & 0 & 0 & 1 \end{array}\right)\\ &R_{z}(\theta)=\left(\begin{array}{llll} \cos \theta & -\sin \theta & 0 & 0 \\ \sin \theta & \cos \theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right) \end{aligned}

旋转变换的逆变换

\begin{aligned} &R_{x}^{-1}(\theta)=R_{x}^{T}(\theta)=R_{x}(-\theta)=\left(\begin{array}{cccc} 1 & 0 & 0 & 0 \\ 0 & \cos \theta & \sin \theta & 0 \\ 0 & -\sin \theta & \cos \theta & 0 \\ 0 & 0 & 0 & 1 \end{array}\right)\\ &R_{y}^{-1}(\theta)=R_{y}^{T}(\theta)=R_{y}(-\theta)=\left(\begin{array}{llll} \cos \theta & 0 & -\sin \theta & 0 \\ 0 & 1 & 0 & 0 \\ \sin \theta & 0 & \cos \theta & 0 \\ 0 & 0 & 0 & 1 \end{array}\right)\\ &R_{z}^{-1}(\theta)=R_{z}^{T}(\theta)=R_{z}(-\theta)=\left(\begin{array}{cccc} \cos \theta & \sin \theta & 0 & 0 \\ -\sin \theta & \cos \theta & 0 & 0 \\ 0 & 0 & 1 & 0 \\ 0 & 0 & 0 & 1 \end{array}\right) \end{aligned}

缩放变换

S(s) = S(s_{x},s_{y},s_{z}) = \begin{pmatrix}s_{x} & 0 & 0 &0 \\ 0& s_{y} &0& 0\\0 &0& s_{z} & 0\\0 & 0 & 0 & 1 \end{pmatrix}

缩放变换的逆变换

S^{-1}(s) = S(\frac{1}{s_{x}},\frac{1}{s_{y}},\frac{1}{s_{z}}) = \begin{pmatrix}\frac{1}{s_{x}} & 0 & 0 &0 \\ 0& \frac{1}{s_{y}} &0& 0\\0 &0& \frac{1}{s_{z}} & 0\\0 & 0 & 0 & 1 \end{pmatrix}

平移变换

T(t)=T\left(t_{x}, t_{y}, t_{z}\right)=\left(\begin{array}{cccc} 1 & 0 & 0 & t_{x} \\ 0 & 1 & 0 & t_{y} \\ 0 & 0 & 1 & t_{z} \\ 0 & 0 & 0 & 1 \end{array}\right)

平移变换的逆变换

T^{-1}(t)=T\left(-t_{x},-t_{y},-t_{z}\right)=\left(\begin{array}{cccc} 1 & 0 & 0 & -t_{x} \\ 0 & 1 & 0 & -t_{y} \\ 0 & 0 & 1 & -t_{z} \\ 0 & 0 & 0 & 1 \end{array}\right)

在我们知道线性变换可以对应一个矩阵,线性变换的组合可以表示为矩阵的乘法。我们知道矩阵的乘法是不服从交换律的,其几何意义是图形变换的先后顺序不能改变,比如先进行平移变换再进行选择变换,和先进行旋转变换再进行平移变换,其结果是不一样的。

1.4 图形的度量性质和仿射性质

从上面的内容中简单的介绍了正交变换和仿射变换具有的性质,特别是图形变换之后不变的性质,这里我们给这些性质下一个准确的定义。

度量性质的定义:在任意正交变化下不变的几何性质(或几何量几何概念)称为度量性质(或正交不变性、度量概念)。

度量性质:垂直;轴对称正交不变量:点之间的距离;向量的程度;两向量的夹角;图形的面积度量概念:距离;角度;面积;对称轴

仿射性质的定义:在任意仿射变化下不变的几何性质(或几何量几何概念)称为仿射性质(或仿射不变量、仿射概念)。

仿射性质:共线;平行;相交;共线点的顺序;中心对称仿射不变量:共线三点的简单比值;代数曲面的次数仿射概念:直线;线段的中点;对称中心;代数曲线;二次曲线的渐近方向;二次曲线的直径

因为正交变换都是仿射变换,所以在仿射变换下不变的性质在正交变换下当然也不变,这说明仿射性质都是度量性质。

交换群的定义:集合 S 到自身的一些双射组成的集合 G ,如果满足:

对任意两个变换 \sigma,\tau \in G ,都有 \sigma\tau \in G ;恒等变换 \varepsilon \in G 任意变换 \sigma \in G ,有逆变换 \sigma^{-1}\in G

则称 G 是集合 S 的一个变换群

三维空间中所有的正交变换所组成的集合 H 是三维空间的一个变换群,称为三维空间的正交变换群;三维空间中所有的仿射变换所组成的集合 H 是三维空间的一个变换群,称为三维空间的仿射变换群。

正交等价的定义:如果存在一个正交变换 \sigma 把图形 C_1 变成 C_2 ,称 C_1,C_2 为正交等价,记为 C_1 \sim C_2 。它具有如下性质:

反身性: C \sim C 对称性: C_1\sim C_2,\ C_2 \sim C_1 传递性: C_1\sim C_2,\ C_2\sim C_3 那么 C_1\sim C_2

对于三维空间中所有与 C 正交等价的图形组成的集合记为 [C] ,称 [C] 是空间中的一个正交等价类。其具有以下性质:

C\sim D ,那么 [C]=[D] 空间中每个图形属于且只属于一个正交等价类同一正交等价类属于且只属于一个正交等价类不同正交等价类里的两个图形不正交等价

比如将一个三角形旋转任意角度之后得到的所有三角形构成一个正交等价类。

仿射等价于仿射等价类:类似的空间中的所有仿射变换群,把图形分成一个个仿射等价类。同一个仿射等价类的图形是仿射等价的。比如平面上所有的平行四边形恰好组成一个仿射类。

2 坐标变换2.1 向量的坐标变换

向量 \vec{V} 在仿射坐标系 [O;\vec{e_1},\vec{e_2},\vec{e_3}] 下的坐标是 \vec{V}(x,y,z) ,我们想要得到点 \vec{V} 在仿射坐标系 [O^{\prime};\vec{e_1^{\prime}},\vec{e_2^{\prime}},\vec{e_3^{\prime}}]下的坐标 \vec{V}(x^{\prime},y^{\prime},z^{\prime})

我们需要知道向量\vec{e_1^{\prime}},\vec{e_2^{\prime}},\vec{e_3^{\prime}}[O;\vec{e_1},\vec{e_2},\vec{e_3}] 的坐标,设:

\vec{e_1^{\prime}}=(a_{11},a_{21},a_{31}) \\ \vec{e_2^{\prime}}=(a_{12},a_{22},a_{32})\\ \vec{e_3^{\prime}}=(a_{13},a_{23},a_{33})

那么:

(x^{\prime},y^{\prime},z^{\prime}) = (x,y,z)\left(\begin{array}{cccc} a_{11} & a_{12} &a_{1 3} \\ a_{21} & a_{22} &a_{2 3} \\ a_{3 1} & a_{3 2} &a_{3 3} \end{array}\right)

同时:

(x,y,z)= (x^{\prime},y^{\prime},z^{\prime}) \left(\begin{array}{cccc} a_{11} & a_{12} &a_{1 3} \\ a_{21} & a_{22} &a_{2 3} \\ a_{3 1} & a_{3 2} &a_{3 3} \end{array}\right)^{-1}

特别的,当 [O;\vec{e_1},\vec{e_2},\vec{e_3}][O^{\prime};\vec{e_1^{\prime}},\vec{e_2^{\prime}},\vec{e_3^{\prime}}] 都是直角坐标系时,过渡矩阵是正交矩阵

2.2 点的坐标变换

因为向量可以任意平移,所以向量的坐标变换可以看成是旋转加缩放的结合。如果是点的变换就有所不同了,因为点不能任意平移,所以除了需要知道向量\vec{e_1^{\prime}},\vec{e_2^{\prime}},\vec{e_3^{\prime}}[O;\vec{e_1},\vec{e_2},\vec{e_3}] 的坐标,还需要知道原点 O^{\prime}[O;\vec{e_1},\vec{e_2},\vec{e_3}] 的坐标。设

O^{\prime}=(x_0,y_0,z_0)

那么点 P(x,y,z)[O^{\prime};\vec{e_1^{\prime}},\vec{e_2^{\prime}},\vec{e_3^{\prime}}] 下的坐标为:

(x^{\prime},y^{\prime},z^{\prime}) = (x,y,z)\left(\begin{array}{cccc} a_{11} & a_{12} &a_{1 3} \\ a_{21} & a_{22} &a_{2 3} \\ a_{3 1} & a_{3 2} &a_{3 3} \end{array}\right) + (x_0,y_0,z_0)

上海迪士尼梦幻世界 上海迪士尼在哪儿 上海迪士尼感受体会 上海迪士尼米奇俱乐部 成都到上海迪士尼攻略 去上海迪士尼带什么 上海南离迪士尼有多远 上海迪士尼地图在哪拿 上海迪士尼乐园国庆节 上海迪士尼室内休息室 日本yidou自由行攻略 台湾半自由行价格 莫干山自由行 后坞 北京去重庆自由行攻略2015 投资四大行股票 财务自由 泰国自由行住酒店没有给小费 1月适合两个人自由行的地方 日本自由行归国 我 孩子 上海 自由行 从郑州到神农架自由行