线代-不给“齐次坐标”一个合理解释真的可以安心使用吗?

博客解释了如何使用齐次坐标解决二维和三维空间中坐标平移的问题,指出矩阵仅能表示线性变换的限制,并通过提升维度和线性变换在高维空间中的应用,直观地展示了如何通过齐次坐标实现原本非线性的平移操作。内容涉及机械臂坐标变换、二维和三维空间的坐标平移,以及如何将二维平移推广到三维空间。
摘要由CSDN通过智能技术生成

1 概述

我们前面了解后知道,矩阵只能做线性变换,那对于一些实际的应用场景,像机械臂末端的位置计算,像素坐标的转换,这些能否用矩阵来实现?经过相关课程的学习,我们知道答案是肯定的。

但是,像机械臂不同关节的坐标系,他们的原点并不重合,不重合就不能属于线性变换了,那不是线性变换不就用不了矩阵了吗?那这不是相互矛盾了?

不知道你是否被这个问题困扰,但学过这些课程的我们一定知道解决问题的关键就出现在齐次坐标。在课上,可能连为何用齐次坐标都没说,也可能说齐次坐标就是为了解决上述的矛盾。但是,至于为何齐次坐标可以解决这样的矛盾应该很少说明。因此,小生今天就尝试给出这样一个操作的合理直观解释。

2 二维坐标系的平移

直接从三维分析很难,因为三维升为四维我们很难想象或者可视化,所以,我们从二维考虑,再进而推广到三维。

2.1 利用齐次坐标实现坐标系的平移

假设我们将一个坐标系的原点从 ( 0 , 0 ) (0,0) (0,0)平移 ( a , b ) (a,b) (a,b)处,我们知道无非就是该空间下各个点的横坐标加x,纵坐标加y。那为什么要用矩阵表示呢?我个人的理解是矩阵的表示有利于推导以及计算机的运算,还方便后面的逆运动学求解。所以利用齐次坐标表示该变换如下
在这里插入图片描述
三维的类似,写出来如下
在这里插入图片描述
但是,看了3b1b的视频之后,我就想,能否用它那种直观的方式来解释这样的变换呢?这个只是凑巧利用矩阵的一个trick,还是可以有所意义?经过了几天的挣扎,问了自称daddy的好兄弟(虽然听不懂他在讲啥,但确实启发了我)。所以我尝试将自己的理解写出来,希望对有同样困惑的同学有所帮助。

2.2 利用高维的线性变换实现低维的空间平移

矩阵只能做线性变换这一点没错,所以你在原先的空间下,必不可能实现空间原点的平移。那该怎么做呢?答案是:提升维度+一个小技巧。

下面以将一个二维平面坐标系向右平移一个单位长度为例子,来讲解这种观点。

  1. 首先我们提升维度,则原空间对应的原坐标系矩阵为
    在这里插入图片描述

  2. 小技巧-平面抬升
    按道理来说,原坐标的点应该是 ( x , y , 0 ) (x,y,0) (x,y,0),但是这里引入了投射坐标 ( x , y , 1 ) (x,y,1) (x,y,1),很多文章都对这个透视坐标进行了解释,所它的性质,他代表的意义啥的。但我就认为他就是把这个平面向上平移了一个单位长度,变成如下图所示的场景。
    在这里插入图片描述

  3. 三维空间的线性变换
    从前面我们知道,变换用到的矩阵应该是
    在这里插入图片描述
    那根据前一篇博客讲的,这个矩阵可以看成三维空间下的一个线性变换。其实就是将z轴绕y轴旋转到如图的位置(新的z轴就是原点与点 ( 1 , 0 , 1 ) (1,0,1) (1,0,1)所连成的直线),那这样一变换,原先抬升的二维平面就移动到如下的地方。
    Generally:因为变换得到的z轴是原点和 ( a , b , 1 ) (a,b,1) (a,b,1),我们又将平面向上抬升了一个单位长度,所以那个抬升的平面原点就也跟着移动到了 ( a , b , 1 ) (a,b,1) (a,b,1)

在这里插入图片描述
4. 最后我们,将坐标利用简单的变换,往下平移一个单位长度。回到我们的二维空间,他成功地向右平移了一个单位长度!
在这里插入图片描述
在这里插入图片描述

3. 后话

至此,我们给出了齐次坐标的直观解释,虽然很不严谨,但是至少能让我自己更好地接受和运用这个东西。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值