一、齐次坐标
在3D世界中表示一个点的方式是:(x, y, z);然而在3D世界中表示一个向量的方式也是:(x, y, z);如果我们只给一个三元组(x, y, z)鬼知道这是向量还是点,毕竟点与向量还是有很大区别的,点只表示位置,向量没有位置只有大小和方向。为了区分点和向量我们给它加上一维,用(x, y, z, w)这种四元组的方式来表达坐标,我们规定(x, y, z, 0)表示一个向量,(x, y, z, 1)或(x', y', z', 2)等w不为0时来表示点。这种用n+1维坐标表示n维坐标的方式称为齐次坐标。
齐次坐标除了能够区分点和向量,在3D图形学中还有重要的意义。齐次坐标系使得我们可以在一中特殊的方程组中求出解,这个方程组中每一个方程都表示一个与系统中其他直线平行的直线。我们知道在欧几里得空间中,对这种方程组是无解的,因为他们没有交点。然而在现实世界中我们是可以看到两条平行线相交的。
两条平行的铁路最终相较于无穷远处。这就说明人眼看到的世界并不是欧几里得空间,而是在一个名为透视空间中的世界。所以要在2D屏幕上表示3D世界,我们需要一个数学工具来承担这项任务,而齐次坐标很完美的承担了这项任务。
如果我们知道一个三维点的齐次坐标为(X, Y, Z, w),那么它的3D空间坐标为:
x = X / w
y = Y / w
z = Z / w
延伸阅读
- ssh框架 2016-09-30
- 阿里移动安全 [无线安全]玩转无线电——不安全的蓝牙锁 2017-07-26
- 消息队列NetMQ 原理分析4-Socket、Session、Option和Pipe 2024-03-26
- Selective Search for Object Recognition 论文笔记【图片目标分割】 2017-07-26
- 词向量-LRWE模型-更好地识别反义词同义词 2017-07-26
- 从栈不平衡问题 理解 calling convention 2017-07-26
- php imagemagick 处理 图片剪切、压缩、合并、插入文本、背景色透明 2017-07-26
- Swift实现JSON转Model - HandyJSON使用讲解 2017-07-26
- 阿里移动安全 Android端恶意锁屏勒索应用分析 2017-07-26
- 集合结合数据结构来看看(二) 2017-07-26