原文地址:矩阵运算—四维齐次空间

4D向量是由3D坐标(x,y,z)和齐次坐标w组成,写作(x,y,z,w)。

在3D世界中为什么需要3D的齐次坐标呢?简单地说明一下,在一维空间中的一条线段上取一点x,然后我们想转移x的位置,那我们应该是x'=x+k,但我们能使用一维的矩阵来表示这变换吗?不能,因为此时一维的矩阵只能让x点伸缩。但如果变成了一维的齐次空间[k 1]就很容易地做到。同样地,在二维空间中,某一图形如果不使用二维的齐次坐标,则只能旋转和伸缩,确不能平移。

因此,我们在3D坐标中使用齐次坐标,是为了物体在矩阵变换中,除了伸缩旋转,还能够平移,如下运算:

既然了解了使用齐次坐标的意义,我们下一步就要了解一下齐次坐标w是什么意义。设w=1,此时相当于我们把3D的坐标平移搬去了w=1的平面上,4D空间的点投影到w=1平面上,齐次坐标映射的3D坐标是(x/w,y/w,z/w),也就是(x,y,z)。(x,y,z)在齐次空间中有无数多个点与之对应。所有点的形式是(kx,ky,kz,k),其轨迹是通过齐次空间原点的“直线”(其实每个点相当于3D的坐标世界)。

当w=0时,有很大的意义,可解释为无穷远的“点”,其意义是描述方向。这也是平移变换的开关,当w=0时,

此时不能平移变换了。这个现象是非常有用的,因为有些向量代表“位置”,应当平移,而有些向量代表“方向”,如表面的法向量,不应该平移。从几何意义上说,能将第一类数据当作"点",第二类数据当作"向量"。可以通过设置w的值来控制向量的意义。

矩阵运算—四维齐次空间相关推荐

  1. 计算面平均边_计算机图形学补充2:齐次空间裁剪(Homogeneous Space Clipping)

    齐次空间裁剪 齐次空间裁剪是指发生在vertex shader之后,透视除法( 顶点坐标/w )之前的一段操作.其目标非常直接,因为我们并没有必要去渲染视锥体之外的物体,如下图: 只有位于视锥体之内的 ...

  2. c语言中的字节序和字节对齐,C语言字节序对齐以及空间利用率

    环境:ubuntu 64bit gcc vim #include #include #include #include #include #include #include typedef struc ...

  3. C语言字节序对齐以及空间利用率

    环境:ubuntu 64bit gcc vim #include <signal.h> #include <math.h> #include <stdio.h> # ...

  4. 三维空间到四维空间的距离遐想

    如何理解三维到四维的距离呢? 那我们必须找出两个维中的关联物. 正如:测量太阳到地球的距离,我们需要用金星做关联物. 摘录于返朴网:曹则贤2021跨年科学演讲:什么是相对论丨贤说八道 那么三维与四维的 ...

  5. 3D图形:矩阵的行列式,矩阵的逆、正交矩阵、齐次矩阵

    前言 在前面我们说到关于矩阵的一些计算知识,相信大家已经觉得进入了水深火热之中了,那么为了让大家感到更加刺激的视觉体验和感官体验,这一篇博客,我将对矩阵的行列式,矩阵的逆,正交矩阵,齐次矩阵进行探讨研 ...

  6. Unity ShaderLab 坐标空间转换及方法

    shader基础 shader空间坐标介绍 未完成的空间转换表 数据类型 名称 shader中的变量名 数据类型 说明 vertex POSITION float4 顶点在空间中的位置 normal ...

  7. 截面空间计量模型(Stata)

    截面空间计量模型(Stata) 文章目录 截面空间计量模型(Stata) @[toc] 1 广义空间自回归模型(SAC) 2 空间误差模型(SEM) 3 空间杜宾模型(SDM) 4 广义空间嵌套模型( ...

  8. 相对性原理的四维描述

    闵柯夫斯基空间 用 x,y,z,ict x,y,z,ict建立一个四维的欧式空间,称为闵柯夫斯基空间.这个空间中任一点与原点的距离平方定义为 s2=x2+y2+z2−c2t2 s^2=x^2+y^2+ ...

  9. 对多维宇宙的理解(时间、空间、超越光速,空间时间旅行)

    零维世界是一个点(为了符合目前我们三维世界的概念,只能叫零维空间了) 一维世界是条线 二维世界是个面 三维世界是个空间 四维世界是每个时间点上的多个空间 五维世界是多个时间点上的多个空间 ----. ...

最新文章

  1. php中的全局变量$_REQUEST
  2. XDocument 获取包括第一行的声明(版本、编码)的所有节点
  3. mysql数据库备份工具expdb,使用expdp完成自动备份数据库案例以及遇到的问题
  4. 全自动洗衣机单片机c语言程序,全自动洗衣机单片机程序
  5. angular div 滚动条事件_DOM事件
  6. Leetcode 每日算法一题*****#495. 提莫攻击
  7. TypeScript与React中如何使用ref
  8. 客户端配置_PPPoE服务器端客户端的配置案例脚本
  9. 在运行hadoopdb\hive\hadoop源码时不能正确调用自定义core-site.xml等配置文件
  10. 华三交换机dhcp 保留地址
  11. 删除ubuntu双系统后,开机出现grub黑屏,删除双系统引导项解决
  12. aui点击事件css,AUI说明
  13. linux内核源码lxr,配置glimpse与LXR读取linux内核源码
  14. Web日志安全分析浅谈
  15. 【GPGPU】新秀 --- 沐曦集成电路(上海)有限公司
  16. 青岛企业掘金大数据时代 大数据时代已经来临
  17. wps分析工具库如何加载_【数据分析】关键词数据分析如何做?用这个工具比指数好...
  18. excel 扩展插件:方方格子(一键将小写字母转为大写)
  19. ACL2022论文分类汇总-Prompt、句子表征、检索排序摘要
  20. 03 数学软件与建模---微分方程建模

热门文章

  1. 部分解决Ubuntu安装X11VNC需要自动登录的问题
  2. BMZCTF:哆啦A梦
  3. js submit方法与onsubmit事件
  4. FileZilla Server搭建
  5. Unity记录一次重新加载场景时,报错为MissingReferenceException:
  6. C++ 中 ZeroMemory、memset 危险需慎用
  7. 优选法和newton法在实践中的比较(分析原因)
  8. CSS+JS+HTML实现罗盘时钟(附完整代码)
  9. 祝贺! 61人新当选为中科院院士! 外籍院士中有2名诺贝尔奖获得者
  10. Springboot+Maven+Mybatis-enhance-actable 根据实体类自动更新数据库表和字段