1

齐次坐标系

 1 year ago
source link: https://jyzhu.top/homogeneous-coordinates/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

齐次坐标系

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

齐次坐标系的现实意义

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

齐次坐标系的本质:

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

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

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

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

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

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

但是,如果把它换成齐次坐标,得到 {Axw+Byw+C=0Axw+Byw+D=0

{Ax+By+Cw=0Ax+By+Dw=0

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

Reference:

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

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


Recommend

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK