本章主要介绍平移,平移本身非常的直白,比如一点

,平移

,则平移后的位置是

。如果在平移前考虑旋转,结合前两篇的内容,很容易得到如下公式:

这里,就有一个线性变换的概念:变换后直线不变,比例不变,原点不变。不难看出,红色矩阵部分是绕原点旋转,满足线性变换的条件。但平移后原点发生的变化,并不是线性变换。这里我们称其为仿射变换(Affine transformation):线性变换+平移。
数学之美,其中之一就是希望达到形式上的统一。而齐次坐标,则实现了将仿射变换转为线性变换的形式:

这里,我们将一个2*2的矩阵升级为3*3的矩阵,这里要强调的是该矩阵是先旋转再平移,每个点扩增一个

位,竟然将平移从非线性变成线性的关系,将旋转和平移统一在一个矩阵中,如此的神奇,这是为什么呢?
从几何的角度,这里可以认为新增了一个维度

,当旋转时,每一个点都相对

旋转,自然中心点不变,而平移时,因为新增维度

的值为1,则相当于该平面上升到

的平面,然后在该平面上实现了平移,而整体上则类似比萨斜塔那般,依旧相对于原点不变。这样,我们新增一个维度,通过高维度的线性变换实现低维度的仿射变换。下图描述了该过程。

这样,对于一个point,对应的齐次坐标为

,而一个vector,对应的齐次坐标为

:

这样,既能满足向量的平移不变性,也能保证两点相减为向量,唯一特别处是两点相加,对应的是两点的中点,这个几何意义。
这样,可得平移矩阵:

我们将旋转和平移组合在一起,假设初始位置

可得:

例子1:

点p绕正方向左下角点

后的点

这里,提供两种思路。通常二维场景下,我们会把B移到O点

,然后旋转

,最后再移动回B点

,因此对应的解为:

另一个思路则是默认

,则M从O平移到B,然后绕

旋转,此时A相对于M坐标系的位置记为

:

而

是M从O平移到B时的相对位置:

前者是坐标点的移动,而后者是坐标系的移动,不同的思路,但最终的矩阵都是一致的。
坐标系和矩阵的基本概念介绍完毕,下一篇我们对应具体的应用场景,首先,先从GIS中大地坐标系和NEU这类的平面坐标系的转换开始吧。
参考资料(上一篇忘记引入参考资料了):Motion and Manipulation https://www.cs.uu.nl/docs/vakken/moma/2019.html
GAMES101: https://www.bilibili.com/video/BV1X7411F744?p=3
如何通俗地讲解「仿射变换」这个概念:
https://www.zhihu.com/question/20666664/answer/157400568
google drive上共享了pdf原版,有兴趣的可以下载下来看。
drive:https://drive.google.com/drive/folders/1Tp_zDNkY4OuhJ3bagE8qD6N0eX6jU8pm?usp=sharing