首页 > 编程知识 正文

静止坐标系和旋转坐标系,坐标转换参数及转换步骤

时间:2023-05-04 12:22:42 阅读:136833 作者:3375

不考虑坐标系变换坐标系变换直线移动,加上平移齐次坐标系和平移追溯过程矩阵变换坐标系变换or位置变换的总结

thinkaninvertiblematrixasa http://www.Sina.com /

坐标系变换例如现在有点p。 a坐标系中的坐标为(x,y )。 如何求出点p在其他坐标系中的坐标呢? 例如,你想知道b坐标系中p点的坐标吗?

类比一下,如果两个说不同母语的人想交流,怎么办? 此时,如果有中文那样的coordinate就好了。 这样,当说英语的人向说法语的人打招呼时,他把世界通用语言英语的“hello”转换成中文的“你好”,然后说法语的人说“你好”

这里有两个过程:

hello 你好 Bonjour这两个过程有一个重点:

你好-中文

是的,是世界通用语言。 我们的中文是字典。 她在不同的语系中扮演着key point的角色。

回到坐标系,使用不同的坐标系就像使用不同的语言,即使各说各的话,彼此也不理解。 如果你想被理解,用大家都能接受的方式交流。 此时,如果导入桥梁,世界就会变得和平:

可以将p点的坐标转换为参照坐标,然后从参照坐标转换为b坐标系的坐标。

A GlobalGlobal B现在,我们的问题是求出某个坐标系x和参照坐标系Global之间的变换方法:

X Global

参考坐标系考虑到不同坐标系的共同原点,如下所示。

选择坐标系a作为参照坐标系,如何表示:

b ) a

答案是:不考虑平移

矩阵变换与词典翻译一样,将一个坐标系下的点变换为另一个坐标系的点。

矩阵和线性变换中提到了矩阵变换在同一坐标系下的作用。 例如,旋转向量。 目前,矩阵变换不可思议地被用作坐标系变换的工具。矩阵变换

将矩阵变换到同一坐标系可以理解为坐标系不变,点的位置不变。 将矩阵变换到不同的坐标系可以认为点的绝对位置不变,坐标系不变。 实际上在矩阵和线性变换变换还是同样的变换,只是站在了不用的角度看待问题的节中,提到了变换关系。 下面是上图的对应表示:

(1) x(y ) )=b ) xy ) xy )=B1 ) x ) y ),B=[b1b2],并且b1,b2是坐标系b的基向量

这里,拓展,[xy]是向量OP或点p在b坐标系中的显示,[ xy]是向量OP或点p在a坐标系中的显示。 求出矩阵b,就可以制作翻译用的词典。

这一切都在矩阵b的各列向量上,在b坐标系的基向量上。

更明确地说,矩阵b的列向量可通过线性变换从坐标系a的基向量获得,所述线性变换可完全由矩阵b表示。 有关详细信息,请参阅矩阵和线性转换。

与上图对应的矩阵b的两个列向量分别为b1=[25/55/5]、b2=[5/525/5]。

实际上,a、b可以是任何坐标系,式(1)依然成立,只要满足以下条件

3http://www.Sina.com/http://www.Sina.com/http://www.Sina.com /坐标系b基矢量是坐标系a的基矢量之一,其中

确定坐标系B的基向量在A坐标系中的表示的过程叫做B坐标系的定位(landed)。将B坐标系的基向量定位在A坐标系中确定了一种关系,我们暂且把这种关系称为追溯关系,把A坐标系称为B坐标系的上游坐标系。反过来,如果把坐标系A的基向量定位在B坐标系中,那么B坐标系就成了A坐标系的上游坐标系。

下面,用图说话:



以图中的两个向量 b1→,b2→ 为基确定一个坐标系B,显然,在B坐标系中 b1B→=[10],b2B→=[01] , 接下来,将 b1→,b2→ 定位到A坐标中,得到 b1A→=[21],b2A→=[−11] 。

∵ OP→ = 2 b1→ +2 b2→

∴ OP→ 在B坐标系中的表示为 [22] ,现在,将 OP→ 用A坐标系描叙:

OP→ = 2 b1→ +2 b2→ = 2b1A→+2b2A→ = [b1A→b2A→] [22] = [24]

现在,令矩阵 B = [b1A→b2A→],P点是用B坐标系表示的任意一点 (x,y) 。

于是 OP→ 在A坐标系中的表示 [x′y′] = B [xy] ,显然, B 是可逆的,于是就有了(1)式的结论。

虽然这里的讨论是基于二维的,但是,不难想象,这里得出的结论可以扩展到任意维度。

用一句话来阐述这个结论

将B坐标系的基向量定位到A坐标系,然后将定位之后的基向量作为矩阵B的列向量,用矩阵 B 对B坐标系中的点P的坐标进行矩阵变换,将得到点P在A坐标系中的坐标。这个过程,就是从坐标系B到坐标系A的一个追溯过程。

加入平移

平移好像没什么好说的,不过就是在前面讨论的基础上引入一个偏移

下面用图示说明:



上图引入了一个新的坐标系,取名为A’。将这个坐标系取名为A’是有原因的,因为他基本就是坐标系A的一个替身,他们之间除了坐标原点发生偏移之外,其他特征完全一致。

有了前面的基础,我们知道,将坐标系B中的坐标转换为坐标系A’中的坐标其实就是一个从B到A’的追溯过程。只要将坐标系B的基定位到A’坐标系中,以定位之后的基向量为列组成矩阵B,然后对坐标系中的坐标进行 B 矩阵转换就能得到其在A’坐标系中的坐标。反过来,求出矩阵B的逆,我们就能将A’坐标系中的坐标转化为B坐标系中的坐标。

也就是说,利用前面讨论的结论,我们能完成:

B↔A′

[x′y′] = B[xy] ⇒ [xy] = B−1[x′y′]

剩下的问题就是:

A′↔A

这个问题就是一个加减偏移量的问题,所以看图就一目了然了。

齐次坐标系与平移

引入齐次坐标的好处之一是可以使用矩阵表达平移:



所以 A′↔A 之间的变换可以用这么一个矩阵变换来完成。

追溯过程



将坐标系B的基向量定位到坐标系A’中,得到向量 b1A′→,b2A′→ ,所以从坐标系B追溯到坐标系A’的矩阵 B = [b1A′→b2A′→]。 A′→A 的平移矩阵 T 为 ⎡⎣⎢100010TxTy1⎤⎦⎥。

故,将坐标系B中的点 p(xB,yB) 追溯到坐标系A中可以用下面的矩阵变换表示:

1). 将坐标变换到坐标系A’:

[xA′yA′] = B [xByB]

2). 将坐标变换到坐标系A中:

[xAyA] = T [xA′yA′]

综合起来就是:

[xAyA] = T B [xByB]

反过来, A→A′ 的平移矩阵 T′ 为 ⎡⎣⎢100010−Tx−Ty1⎤⎦⎥ ,从坐标系A’追溯到坐标系B的矩阵 A′ = B−1

故,将坐标系A中的点 p(xA,yA) 追溯到坐标系中B中可以用下面的矩阵变换表示:

[xByB] = A′ T′ [xAyA] = (TB)−1 [xAyA]

矩阵变换:坐标系变换 or 位置变换



站在不同的角度看同一个矩阵变换 Bx⃗  :

1). 位置变换:

A坐标系中:

向量 OP→=[22] , 向量 b1→=[21] , b2→=[−11] , 令矩阵 B = [b1→b2→],则矩阵变换 Bx⃗  会将 OP→ 变到 OP′→ 。

2). 坐标系变换:

B坐标系中:

向量 OP′→=[22]

A坐标系中:

向量 b1→=[21] , b2→=[−11] , 令矩阵 B = [b1→b2→],则矩阵变换 Bx⃗  会将 OP′→ 从坐标系B变到坐标系A。

总结

于是,对任意坐标向量 x⃗  ,矩阵变换的组合 M1M22M3...Mn 作用于 x⃗  存在两种解释。

x′→ = M1M22M3...Mn x⃗  的两种解释:

1). 坐标系不变,位置变换:

将 M1M22M3...Mn 看作从右到左依次作用的矩阵变换。首先 Mn 变换, 将坐标向量 x⃗  变换到了 xn−1→ = Mn x⃗  ,接着是 Mn−1 变换,将坐标向量 xn−1→ 变换到了 xn−2→ = Mn−1 xn−1→ …。所有的中间结果都是同一个坐标系中的坐标向量,所有的变换都是针对同一个坐标系的变换。

2). 位置不变,坐标系变换:

将 M1M22M3...Mn 看作从左到右依次作用的矩阵变换。首先 M1 变换,将M1坐标系中的坐标向量 x1→ 转换为起始坐标系中的向量 x′→ , x′→ = M1 x1→ ,然后是 M2 变换,将M2坐标系中的坐标向量 x2→ 转换成M1坐标系中的坐标向量 x1→ , x1→ = M2 x2→ …最后是 Mn 变换,将Mn坐标系中的坐标向量 x⃗  转换成Mn-1坐标系中的坐标向量 xn−1→ , xn−1→ = Mn x⃗  。所有的中间结果都是不同坐标系中的坐标向量,且坐标向量的绝对位置没有改变(想象该点被一个钉子钉住)。从Mn坐标系的坐标向量 x⃗  依次与 MnMn−1...M3M2M1 矩阵相乘最终转换到起始坐标系对应的坐标向量 x′→ 的过程就是一系列前面提到过的追溯过程

版权声明:该文观点仅代表作者本人。处理文章:请发送邮件至 三1五14八八95#扣扣.com 举报,一经查实,本站将立刻删除。