0、参考链接
1、问题:两条平行线可以相交于一点
-
在欧式空间中,同一平面的两条直线不能相交;
-
在透视空间中,两条平行线可以相交,火车轨道随着我们的视线越来越窄,最后两条平行线在无穷远处交于一点;

-
欧式空间描述2D/3D几何非常合适,但这种方法不适合处理透视空间的问题。
2、解决方法:利用齐次坐标解决这一问题
-
齐次坐标就是用N+1维来代表N维坐标;
-
我们可以在一个2D笛卡尔坐标(X, Y)末尾加上一个额外的变量w来形成2D齐次坐标(x, y, w),并且有:
X = x / w
Y = y / w
例如,笛卡尔坐标系下(1, 2)的齐次坐标可以表示为(1, 2, 1),如果(1, 2)移动到无限远处,在笛卡尔坐标系下变成(∞, ∞),这个点没有意义,它的齐次坐标为(1, 2, 0)。
-
平行线在透视空间的无穷远处交于一点,但是在欧氏空间却不能。
3、为什么叫齐次坐标?
我们把齐次坐标转化为笛卡尔坐标的方法是前面n-1个坐标分量分别除以最后一个分量即可。
( x , y , w ) ⇔ ( x w , y w ) Homogeneous \begin{array}{cc} (x, y, w) & \Leftrightarrow & \left(\frac{x}{w}, \frac{y}{w}\right) \\ \text { Homogeneous } \end{array} (x,y,w) Homogeneous ⇔(wx,wy)
( 1 , 2 , 3 ) ⇒ ( 1 3 , 2 3 ) ( 2 , 4 , 6 ) ⇒ ( 2 6 , 4 6 ) = ( 1 3 , 2 3 ) ( 4 , 8 , 12 ) ⇒ ( 4 12 , 8 12 ) = ( 1 3 , 2 3 ) ⋮ ⋮ ( 1 a , 2 a , 3 a ) ⇒ ( 1 a 3 a , 2 a 3 a ) = ( 1 3 , 2 3 ) \begin{array}{c} (1,2,3) \Rightarrow\left(\frac{1}{3}, \frac{2}{3}\right) \\ (2,4,6) \Rightarrow\left(\frac{2}{6}, \frac{4}{6}\right) \quad=\left(\frac{1}{3}, \frac{2}{3}\right) \\ (4,8,12) \Rightarrow\left(\frac{4}{12}, \frac{8}{12}\right)=\left(\frac{1}{3}, \frac{2}{3}\right) \\ \vdots & \vdots \\ (1 a, 2 a, 3 a) \Rightarrow\left(\frac{1 a}{3 a}, \frac{2 a}{3 a}\right)=\left(\frac{1}{3}, \frac{2}{3}\right) \end{array} (1,2,3)⇒(31,32)(2,4,6)⇒(62,64)=(31,32)(4,8,12)⇒(124,128)=(31,

本文介绍齐次坐标的引入背景及作用,重点阐述如何利用齐次坐标统一表示图像的平移、旋转和缩放等几何变换,并通过实例展示了齐次坐标在计算机图形学中的应用。
最低0.47元/天 解锁文章
2978

被折叠的 条评论
为什么被折叠?



