Backto OpenCV Index
简介
在向量后面加一个小尾巴,升一维。比如 ( x , y ) (x,y) (x,y) 用 ( x , y , 1 ) (x,y,1) (x,y,1)表示
重要性
“齐次坐标表示是计算机图形学的重要手段之一,它既能够用来明确区分向量和点,同时也更易用于进行仿射(线性)几何变换。” – 《计算机图形学(OpenGL版)》的作者F.S. Hill Jr.
通过 n维的向量用一个n+1维向量来表示,达到了
区分向量和点(以三维空间里点的齐次坐标为例)
- (X, Y, Z, 1)是点
- (X, Y, Z, 0)是向量, 也可以表示此方向向量上的无穷远点,或者说此无穷远点定义的方向
- 原点坐标是(0,0,0,1),(0,0,0,0)没有意义
- 点(1 , 0 , 0 , 0), (0 , 1 , 0 , 0) 和 (0 , 0 ,1 , 0)分别是轴ox , oy 和oz
更易于进行几何变化
许多图形应用涉及到几何变换,主要包括平移、旋转、缩放。以矩阵表达式来计算这些变换时,平移是矩阵相加,旋转和缩放则是矩阵相乘,综合起来可以表示为 p ′ = m 1 ∗ p + m 2 p' = m_1*p+ m_2 p′=m1∗p+m2( m 1 m_1 m1旋转缩放矩阵, m 2 m_2 m2为平移矩阵, p p p为原向量 , p ′ p' p′为变换后的向量)。引入齐次坐标的目的主要是合并矩阵运算中