在三维场景中经常会用到模型的平移、旋转和缩放功能。最近实现了模型的编辑功能,感觉之前学的矩阵运算和几何都快忘光了,幸好做了这个功能,又重新拾了起来,为了防止以后再忘记,特写一篇日记来记录一下。
知识点1:变换矩阵
在三维场景中一个点用x,y,z表示就可以了,但是必须使用4*4的矩阵才能完成模型的各种变换,所以模型的变换矩阵都是4*4的。
知识点2:点或者向量
要想获取点或者向量变换后的值,可以用点或者向量与变换矩阵相乘,即可获得变换后的点或者向量。
点或者向量和矩阵相乘之前,需要变换成4*1的矩阵,如点a(ax,ay,az),变换为(ax, ay,az, 1),向量B(Bx,By,Bz),变换为(Bx, By, Bz, 0).因为点包含位置信息,所以最后一位设为1,因为向量只有方向,没有位置信息,所以最后一位设为0,避免位置偏移。
平移的计算:
设有一个点V(Vx, Vy, Vz),变换矩阵为T1,将点延X轴平移a,延Y轴平移b, 延Z轴平移c,求该点平移后的矩阵。
点V原来的位置为: