2013-11-22 80 views

回答

0

形式(x,y,1)表示homogeneous coordinates中的一个点。这就允许一个点只需通过乘以一个变换矩阵就可以进行旋转和平移。对于3D,这对计算机图形非常重要。 将向量表示为(x,y,0)的一个原因是添加到某个点的向量必须给出一个点,或者等价地,两个点之间的差值是一个向量。您可以通过搜索“齐次坐标”来查找大量资源,例如this one from MIT

0

对于齐次坐标,大小并不重要。下面的值表示相同点

{ x, y, 1 } 
{ 2x, 2y, 2 } 

{a, b, c}获取坐标你做

(x,y) = (a/c, b/c)

现在来表示一个方向,您使用一个退化点(与c=0),使它没有x,y坐标。

要想从{a, b, 0}方向矢量你正常化的载体与

(ux,uy) = (a/√(a^2+b^2), b/√(a^2+b^2))

所以按照惯例,当同质标c是非零值代表坐标,当c为零它们代表方向。

此约定有助于限定点沿着一条线,给定线原点r={rx,ry,1}并沿着距离t的点的一个单位方向u={ux,uy,0}

q = r + u*t = (rx,ry,1) + (ux,uy,0)*t = (rx+ux*t, ry+uy*t, 1) 

具有坐标(qx,qy) = (rx+ux*t, ry+uy*t)。现在,如果矢量在第3个坐标中有一个值,则不会正确计算点q

注:这适用于2D以及用于3D(带有4个值)。