基本变换都是通过将表示点坐标的向量与特定的变换矩阵相乘完成的。
进行基于矩阵的变换时,三位空间中点的位置需要表示成齐次坐标形式。
齐次坐标形式:在X、Y、Z3个坐标值后面增加第四个量W,未变换时W值一般为1,如P=(Px,Py,Pz,1)T
P与变换矩阵M相乘即可以完成一次基本变换,得到变换后点Q的齐次坐标向量。
1.平移变换
Matrix.translateM(currMatrix, 0, x, y, z);
2.旋转变换
右手螺旋定则是:右手握住旋转轴,使大拇指指向旋转轴的正方向,4指环绕的方向即为旋转的正方向。
Matrix.rotateM(currMatrix, 0, angle, x, y, z);
3.缩放变换
Matrix.scaleM(currMatrix,0, x, y, z);
4.基本变换的实质
OpenGL ES中变换的实现机制可以理解为首先通过矩阵对坐标系进行变换,然后根据传入渲染管线的原始顶点坐标在最终变换结果坐标系中的位置来进行绘制。