1、前言

“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。”—— F.S. Hill, JR。

2、介绍

2.1 为何引入齐次坐标

对于一个向量v以及基oabc,可以找到一组坐标(v1,v2,v3),使得v = v1 a + v2 b + v3 c (1)

而对于一个点p,则可以找到一组坐标(p1,p2,p3),使得 po = p1 a + p2 b + p3 c (2)

从上面对向量和点的表达,我们可以看出为了在坐标系中表示一个点(如p),我们把点的位置看作是对这个基的原点o所进行的一个位移,即一个向量:po(有的书中把这样的向量叫做位置向量——起始于坐标原点的特殊向量),我们在表达这个向量的同时用等价的方式表达出了点p:p = o + p1 a + p2 b + p3 c (3)

公式(1)(3)是坐标系下表达一个向量和点的不同表达方式。这里可以看出,虽然都是用代数分量的形式表达向量和点,但表达一个点比一个向量需要额外的信息。如果我写出一个代数分量表达(1, 4, 7),谁知道它是个向量还是个点!
我们现在把(1)(3)写成矩阵的形式:
v = (v1 v2 v3 0) X (a b c o)T
p = (p1 p2 p3 1) X (a b c o)T,

这里(a,b,c,o)是坐标基矩阵,右边的列向量分别是向量v和点p在基下的坐标。这样,向量和点在同一个基下就有了不同的表达:3D向量的第4个代数分量是0,而3D点的第4个代数分量是1。像这种这种用4个代数分量表示3D几何概念的方式是一种齐次坐标表示。

这样,上面的(1, 4, 7)如果写成(1,4,7,0),它就是个向量;如果是(1,4,7,1),它就是个点。下面是如何在普通坐标(Ordinary Coordinate)和齐次坐标(Homogeneous Coordinate)之间进行转换:
(1)从普通坐标转换成齐次坐标时
如果(x,y,z)是个点,则变为(x,y,z,1);
如果(x,y,z)是个向量,则变为(x,y,z,0)
(2)从齐次坐标转换成普通坐标时
如果是(x,y,z,1),则知道它是个点,变成(x,y,z);
如果是(x,y,z,0),则知道它是个向量,仍然变成(x,y,z)

2.2 齐次坐标的性质

1)对于一个普通坐标的点P=(Px, Py, Pz),有对应的一族齐次坐标(wPx, wPy, wPz, w),其中w不等于零。比如,P(1, 4, 7)的齐次坐标有(1, 4, 7, 1)、(2, 8, 14, 2)、(-0.1, -0.4, -0.7, -0.1)等等。即:如果把一个点从普通坐标变成齐次坐标,给x,y,z乘上同一个非零数w,然后增加第4个分量w;如果把一个齐次坐标转换成普通坐标,把前三个坐标同时除以第4个坐标,然后去掉第4个分量。
2)当w不为零时,齐次点坐标(x, y, z, w)即三维空间点坐标(x/w, y/w, z/w);当w为零时,齐次点(x, y, z, 0.0)表示此点位于某方向的无穷远处。如:对于齐次坐标[a,b,h],保持a,b不变,h趋向于0,表示点沿直线 ax+by=0 逐渐走向无穷远处的过程。

齐次坐标(Homogeneous Coordinate)介绍相关推荐

  1. 齐次坐标(Homogeneous Coordinate)的理解

    一直对齐次坐标这个概念的理解不够彻底,只见大部分的书中说道"齐次坐标在仿射变换中非常的方便",然后就没有了后文,今天在一个叫做"三百年 重生"的博客上看到一篇关 ...

  2. 齐次坐标(Homogeneous Coordinate)

    齐次坐标就是将n维的向量用n+1维向量表示,增加了一个维度以后可以表达更多的信息: 在欧式距离中无法表示无穷远处的点,(∞,∞)是没有意义的.在齐次坐标中p=(x,y,0),就可以轻松的表示p点是一个 ...

  3. 齐次坐标 (Homogeneous Coordinate)

    转自:http://www.cnblogs.com/xmzyl/articles/1604150.html 齐次坐标(Homogeneous Coordinate) 在空间直角坐标系中,任意一点可用一 ...

  4. Homogeneous Coordinates(齐次坐标)

    Problem: Two parallel lines can intersect. 问题: 两条平行线会相交   铁轨在无限远处相交于一点Problem: Two parallel lines ca ...

  5. 齐次坐标的理解(2)

    接上篇文章齐次坐标的理解(1):https://blog.csdn.net/m0_37957160/article/details/119549709 "齐次坐标表示是计算机图形学的重要手段 ...

  6. AI理论知识基础(23)-齐次坐标

    所谓齐次坐标就是将一个原本是n维的向量用一个n+1维向量来表示.例如,二维点(x,y)的齐次坐标表示为(hx,hy,h).由此可以看出,一个向量的齐次表示是不唯一的,齐次坐标的h取不同的值都表示的是同 ...

  7. 空间几何变换 之 齐次坐标

    在欧式空间(笛卡尔空间)中,使用坐标描述2D/3D几何非常合适,例如2维欧式空间中的点表示为(x , y),3维空间中点表示为(x , y , z).但是这种方法不适用于透视空间,当一个点位于无穷远处 ...

  8. 【图形学】04 数学部分(四、放射变换)

    文章目录 1.线性变换 2.仿射变换 3.张成空间 4.对于齐次坐标的理解 n.多边形重心的推论 1.线性变换 线性变换从几何直观有三个要点: 变换前是直线的,变换后依然是直线 直线比例保持不变 变换 ...

  9. 透视投影(Perspective Projection)变换推导

    透视投影(Perspective Projection)变换推导 透视投影是3D固定流水线的重要组成部分,是将相机空间中的点从视锥体(frustum)变换到规则观察体(Canonical View V ...

最新文章

  1. python快速排序最简单写法_漫画:最最最最最简单的选择排序
  2. NIO 之 FileChannel
  3. 跟我一起学.NetCore之文件系统应用及核心浅析
  4. 计算机基础知识整理大全_知识大全 | 物理选修35quot;波粒二象性quot;
  5. 95-140-130-源码-transform-算子coGroup
  6. 递归神经网络教程请签收!
  7. imagej得到灰度图数据_ImageJ的高级使用方法
  8. CVE-2017-0199漏洞分析
  9. 计算机上硬盘显示不出来怎么办,加装硬盘不显示怎么办_新硬盘装上去了但是没显示这么解决...
  10. java判断生日_java根据生日判断生日和星座
  11. 2018滴水LUA手游脚本制作实战视频教程
  12. 漫步者蓝牙只有一边有声音_为什么我蓝牙耳机只有一边有声音?
  13. Scratch之顺序、循环、选择三种程序结构
  14. 小重山 2022年4月22日
  15. pyqt5 制作壁纸切换工具实例 第一章
  16. Matlab之读取shp文件函数shaperead
  17. c语言 最佳情侣身高差
  18. python中的pygame弹球游戏代码_python pygame实现挡板弹球游戏
  19. 小米5aosp android p,为小米5刷入Lineage OS 15.1
  20. 百度云智峰会 百度智能大数据助力医学、金融领域变革

热门文章

  1. Qt笔记-QMap自定义键(key)
  2. linux下Lucent milife isgsdk使用(1)
  3. uniwide服务器不能进入系统,AMD巴塞罗那服务器全面上市
  4. 四种开发模式 得区别
  5. 手把手教你入门R语言--数据分析篇(1)——数据导入与基础绘图
  6. sim卡的imisgid1gid2参数解释
  7. Cross-site request forgery简介
  8. 梯度下降(Gradient Descent)数学原理分析与实例
  9. java printwriter乱码_PrintWriter返回乱码的分析及解决
  10. jquery学习笔记——getJSON无法读取本地json数据的问题