坐标系变换
Posted unclerunning
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了坐标系变换相关的知识,希望对你有一定的参考价值。
坐标系变换
Think an invertible matrix as a coordinate.
坐标系变换,例如,现在有一个点P,在A坐标系中的坐标为 (x,y) ,如何求出点P在其他坐标系下的坐标呢?比如,我们想知道P点在B坐标系中的坐标?
做个类比,如果两个讲不同母语的人想要交流,怎么办?这时,如果有一种世界通用语言就好了,例如汉语。这样,当说英语的人向说法语的人问候“你好”的时候,他知道要查字典先把英文 “hello”转换成中文“你好”,然后,说法语的人就可以将“你好”转换成法文“Bonjour”。
这里有两个过程:
- hello → 你好
- 你好 → Bonjour
这两个过程中有一个关键点:
你好 —汉语
是的,世界通用语言,我们的汉语,就是key point, 她在不同语系中充当了桥梁的角色。
回到坐标系的话题,使用不同的坐标系就像使用不同的语言,各说各话,相互之间是无法被理解的。如果想要被理解,那就的使用大家都认同的方式交流。这时候,如果引入一个参考坐标系,世界就和平了:
我们可以将P点的坐标先转化为一个参考坐标,然后再从参考坐标转换到B坐标系中的坐标。
- A → Global
- Global → B
现在,我们的问题变成了求某个坐标系X与参考坐标系Global之间的转换方法:
X ↔ Global
不考虑平移
如果考虑不同的坐标系共原点,就像下面这样:
选择坐标系A作为参考坐标系,如何表述:
B ↔ A
答案是:矩阵变换
矩阵变换就像词典翻译一样,将一个坐标系下的点转换成另一个坐标系中的点。
矩阵与线性变换中提到了在同一个坐标系中矩阵变换的作用,例如,将一个向量进行旋转。现在,矩阵变换被不可思议的用作了坐标系变换的工具。变换还是同样的变换,只是站在了不用的角度看待问题:
- 矩阵变换之于同一个坐标系,可以理解为坐标系不变,点的位置改变。
- 矩阵变换之于不同坐标系,可以理解为点的绝对位置不变,坐标系改变。
其实在矩阵与线性变换拓展一节中,我提到了一种转换关系,这里,我给出上图的对应表述:
(1) [x′y′] = B[xy] ⇒ [xy] = B−1[x′y′] , B =
[b1→b2→] , 且 b1→,b2→ 是坐标系B的基向量
其中,矩阵
B
的各个列向量分别对应B坐标系的各个基向量,
这一切,在于矩阵
(1) 的转换关系之所以成立,是因为矩阵
B
的各个列向量是B坐标系的基向量,他们都是坐标系A中的向量。更明确的说,矩阵
上图对应的矩阵B的两个列向量分别为
其实A、B可以是任何坐标系,式(1)仍然成立,只要满足:
- 坐标系A和坐标系B原点均为(0,0)
- 矩阵 计算机图形学关于旋转变换矩阵的问题