资讯专栏INFORMATION COLUMN

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

HtmlCssJs / 3387人阅读

摘要:在课上,可能连为何用齐次坐标都没说,也可能说齐次坐标就是为了解决上述的矛盾。但是,至于为何齐次坐标可以解决这样的矛盾应该很少说明。

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. 后话

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

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/122307.html

相关文章

  • 图像处理-投影图像恢复仿射特性2

    摘要:前言在我的上一篇笔记中记录了有关投影图像恢复仿射特性,去除投影畸变的方法,主要是通过找平行线的交点来完成的。类似的,在投影平面中,令三点的一维齐次坐标分别为,,,,,。 ...

    不知名网友 评论0 收藏0
  • css的2D转换

    摘要:的转换即,进行一些的转换坐标描述坐标的系统有笛卡尔坐标系统和齐次坐标系。其单位为数据类型中的该缩放仅仅支持欧几里得平面二维平面上的变换设置的的值为至此,完成了一个横轴一倍,纵轴一倍的放大。的转换坐标齐次坐标系由笛卡尔坐标系投影得到。 脚本化css下面通过css实现动画效果,可以使用脚本化的css实现滑入,轮廓伸缩的列表,即动态的HTML,一个过时的说法DHTML 一些css的基础知识 ...

    gitmilk 评论0 收藏0
  • GPU 渲染管线与着色器 大白话总结 ---- 一篇就够

    摘要:它的处理单位是顶点,也就是每个顶点,都会调用一次顶点着色器。这里给一个的代码,把顶点着色器和片元着色器的代码,放到了一个文件中,不过引擎会解析文件,转换个着色器代码段,传递给。通常,顶点着色器只处理顶点坐标,进行空间转换。 ...

    roadtogeek 评论0 收藏0
  • 基于WEBGL架构的3D可视化平台—家居城3D展示

    摘要:本文将模拟一个欧派,让大家足不出户在家里就能更加直观立体的挑选家具。创建广告牌宽度高度深度宽度上的节数高度上的节数深度上的节数中心点家具展销欧派这里给我们给整个场景用抽象物体围起来了,以免第一人称控件开启时会造成无碰撞体系坠落出场景。 本文将模拟一个欧派,让大家足不出户在家里就能更加直观立体的挑选家具。 第一步,利用CampusBuilder搭建模拟场景。CampusBuilder的模...

    libin19890520 评论0 收藏0
  • 字节跳动薪资普降 17% ?看看这届网友怎么说?

    摘要:号一大早就被字节跳动薪资普降的消息刷屏了,再看微博知乎,这个消息也已稳坐两大平台的热榜前位。通过微博热搜,我们来看看具体发生了什么。月日是字节跳动取消大小周后的首个发薪日。 9.1号一大早就被字节跳动薪资普降 17%的消息刷屏了,再看微博知乎,这个消息也已稳坐两大平台的热榜前位。   通...

    pubdreamcc 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<