关于齐次坐标的理解(经典)
来源:互联网 发布:软件过程管理 编辑:程序博客网 时间:2024/06/14 18:59
原文:http://blog.csdn.net/janestar/article/details/44244849
分类:
问题:两条平行线可以相交于一点
在欧氏几何空间,同一平面的两条平行线不能相交,这是我们都熟悉的一种场景。
然而,在透视空间里面,两条平行线可以相交,例如:火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点。
欧氏空间(或者笛卡尔空间)描述2D/3D几何非常适合,但是这种方法却不适合处理透视空间的问题(实际上,欧氏几何是透视几何的一个子集合),2维笛卡尔坐标可以表示为(x,y)。
如果一个点在无穷远处,这个点的坐标将会(∞,∞),在欧氏空间,这变得没有意义。平行线在透视空间的无穷远处交于一点,但是在欧氏空间却不能,数学家发现了一种方式来解决这个问题。
方法:齐次坐标
简而言之,齐次坐标就是用N+1维来代表N维坐标
我们可以在一个2D笛卡尔坐标末尾加上一个额外的变量w来形成2D齐次坐标,因此,一个点(X,Y)在齐次坐标里面变成了(x,y,w),并且有
为什么叫齐次坐标?
转化齐次坐标到笛卡尔坐标的过程中,我们有一个发现,例如:
在欧氏几何空间,同一平面的两条平行线不能相交,这是我们都熟悉的一种场景。
然而,在透视空间里面,两条平行线可以相交,例如:火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点。
欧氏空间(或者笛卡尔空间)描述2D/3D几何非常适合,但是这种方法却不适合处理透视空间的问题(实际上,欧氏几何是透视几何的一个子集合),2维笛卡尔坐标可以表示为(x,y)。
如果一个点在无穷远处,这个点的坐标将会(∞,∞),在欧氏空间,这变得没有意义。平行线在透视空间的无穷远处交于一点,但是在欧氏空间却不能,数学家发现了一种方式来解决这个问题。
方法:齐次坐标
简而言之,齐次坐标就是用N+1维来代表N维坐标
我们可以在一个2D笛卡尔坐标末尾加上一个额外的变量w来形成2D齐次坐标,因此,一个点(X,Y)在齐次坐标里面变成了(x,y,w),并且有
X = x/w
Y = y/w
例如,笛卡尔坐标系下(1,2)的齐次坐标可以表示为(1,2,1),如果点(1,2)移动到无限远处,在笛卡尔坐标下它变为(∞,∞),然后它的齐次坐标表示为(1,2,0),因为(1/0, 2/0) = (∞,∞),我们可以不用”∞"来表示一个无穷远处的点了,哈哈。为什么叫齐次坐标?
我们把齐次坐标转化为笛卡尔坐标的方法是前面n-1个坐标分量分别除以最后一个分量即可。
转化齐次坐标到笛卡尔坐标的过程中,我们有一个发现,例如:
你会发现(1, 2, 3), (2, 4, 6) 和(4, 8, 12)对应同一个Euclidean point (1/3, 2/3),任何标量的乘积,例如(1a, 2a, 3a) 对应 笛卡尔空间里面的(1/3, 2/3) 。因此,这些点是“齐次的”,因为他们代表了笛卡尔坐标系里面的同一个点。换句话说,齐次坐标有规模不变性。
证明:两条直线可以相交
考虑如下方程组:
我们知道在笛卡尔坐标系里面,该方程组无解,因为C ≠ D,如果C=D,两条直线就相同了。
让我们在透视空间里面,用齐次坐标x/w, y/w代替x ,y,
现在我们有一个解(x, y, 0),两条直线相交于(x, y, 0),这个点在无穷远处。
小结:齐次坐标在图形学中是一个非常基础的概念,例如3D场景映射到2D场景的过程中
参考: http://www.songho.ca/math/homogeneous/homogeneous.html
阅读全文
0 0
- 关于齐次坐标的理解(经典)
- 关于齐次坐标的理解(经典)
- 关于齐次坐标的理解(经典)
- 关于齐次坐标的理解(经典)
- 关于齐次坐标的理解(经典)
- 【基础】关于齐次坐标的理解(经典)
- 关于齐次坐标的理解
- 关于齐次坐标的理解
- 齐次坐标的理解(转)
- 齐次坐标的理解(转载)
- 齐次坐标的理解
- 齐次坐标的理解
- 齐次坐标的理解
- 齐次坐标的理解
- 齐次坐标的理解
- 齐次坐标的理解
- 齐次坐标的理解
- 齐次坐标的理解
- eclipse使用问题
- python.exe和pythonw.exe的区别(区分.py、.pyw、.pyc文件)
- Java装饰模式
- blob图像导出
- PHP浮点运算结果出现误差原因分析及解决方案
- 关于齐次坐标的理解(经典)
- 【人性化】元素据管理模块新增序号展示
- unity使用localEulerAngles、rotation和Rotate进行旋转的区别
- Java 链表模拟栈
- 大数据平台下利用Python进行Hql并行数据跑批
- 通过读取文件向mysql表单中插入某几列数据
- 函数
- Lottie动画教程
- P287 8.8