齐次座标
齐次坐标简单的说是增加了一维,这样就可以方便进行平移变换。在图形坐标中,我们往往都是通过矩阵运算的方式来运作的,所以我们需要这里整理下矩阵运算的一种知识,这里几张ppt直接可以解释是怎么做变换的。
以上的都是一些具体做变换的数学推导,这里不加以详述,之所以要引入齐次坐标这种概念,我个人目前感觉主要目的除了是解决平移这个矩阵运算的问题,还有就是解决一个“投影”的问题,目前我们所使用到的一些正交的坐标系对应的坐标都是一些光的投影,比如说,二维坐标,无论光怎么照射,两个面上的投影都不会移动位置,故不能进行平移变换,所以我们能做的只有移动光的位置,或者可以形象点说,是移动太阳的位置,这样照射下来对应的投影坐标系也会发生变换,通过一个更高维的变量来完成较低维数的平移变换。
其余还需要谈下面积坐标和齐次坐标系的关系,这里虽然说面积坐标是一种特殊的齐次坐标,仅是个人直观上感觉的解释,不是数学解释,从我的想法上说,就是,一个三角柱,齐次坐标一般都是横着切平面的,齐次坐标应该是可以任意切平面的,更好的说应该是切的平面的集合,而面积坐标未必是横着切的,但是切好的固定一个平面。
就像这张图的意思而言,简单的说就是面积坐标是一般横着切的,而齐次坐标是一种一个坐标系的集合,也就是随便切,而我们所用来方便做平移变换的一般的都是横着切,故如上图横着切一样。
Matlab代码(上图是自己画的)
v=[0 0 0;0 50 0;50 0 0;0 050;50 0 50;0 50 50;];
f= [1 2 3 1;1 2 6 4;2 3 5 6;1 35 4;4 5 6 4];
patch('Faces',f,'Vertices',v,'FaceColor','r');
view(135,30)
alpha(0.5)
hold on;
x1=-100:100:100;
y1=-100:100:100;
temps1=[10 10 10; 20 20 20; 3030 30];
x2=-100:100:100;
y2=-100:100:100;
temps2=[20 20 20 ;20 20 20 ;2020 20];
mesh(x1,y1,temps1);
hold on;
mesh(x2,y2,temps2);
通过上图可以表现我对面积坐标和齐次坐标一些直观意义上的理解