齐次坐标系

齐次坐标系

之前不理解为什么要用一个和从小到大学的笛卡尔坐标系不同的齐次坐标系来表示东西,并且弄得很复杂;学了各种公式也很糊涂。现在终于明白了

齐次坐标系的现实意义

就是用来表示现实世界中我们眼睛看到的样子:两条平行线在无限远处能相交。

齐次坐标系的本质:

就是用N+1维来代表N维坐标。

也就是说,原本二维空间的点\((X,Y)\),增加一个维度,用\((x,y,w)\)来表示。把齐次坐标转换成笛卡尔坐标是很简单的,对前两个维度分别除以最后一个维度的值,就好了,即 \[ X=\frac x w,\ Y=\frac y w\\ (X,Y)=(\frac x w,\frac y w) \]

这样做就可以表示两条平行线在远处能相交了!why?

要解释这个,需要先解释一个齐次坐标系的特点:规模不变性(也是叫homogeneous这个名字的原因)。也就是说,对任意非零的k,\((x,y,w)\)\((kx,ky,kw)\)都表示二维空间中同一个点\((\frac x w,\frac y w)\)。(因为\(\frac{kx}{kw}=\frac xw\)嘛。)

首先,用原本笛卡尔坐标系中的表示方法,无限远处的点会被表示成\((\infty,\infty)\),从而失去意义。但是我们发现用齐次坐标,我们就有了一个方法明确表示无限远处的任意点,即,\((x,y,0)\)。(为什么?因为把它转换回笛卡尔坐标,会得到\((\frac x 0,\frac y 0)=(\infty,\infty)\))。

现在,用初中所学,联立两条直线的方程,得到的解是两条直线的交点。假如有两条平行线\(Ax+By+C=0\)\(Ax+By+D=0\),求交点,则 \[ \left\{ \matrix{Ax+By+C=0 \\Ax+By+D=0} \right. \] 在笛卡尔坐标系中,可知唯一解是\(C=D\),即两条线为同一条直线。

但是,如果把它换成齐次坐标,得到 \[ \left\{ \matrix{A\frac x w+B\frac y w+C=0\\ A\frac x w + B\frac y w +D=0} \right. \]

\[ \left\{ \matrix{Ax+By+Cw=0\\Ax+By+Dw=0} \right. \]

\(w=0\),上式变成\(Ax+By=0\),得到解\((x,-\frac {A}Bx,0)\)。其实这里的x和y是什么不重要,重要的是w=0,意味着这是个无限远处的点。也就是说,两条平行线在无限远处相交了!甚至能明确求出交点!

Reference:

http://www.songho.ca/math/homogeneous/homogeneous.html

https://zhuanlan.zhihu.com/p/373969867