我从android opengl es 2.0开始,我试图了解这些概念。
我已经在下面编写了旋转矩形的函数。我通过使用rotateM方法中的值成功进行了一些旋转。但是我没有成功
对我的矩形进行一些具体的旋转,例如向右旋转2D 45度。
基本上,我盯着说明以下内容的android引用;
rotationM(float [] m,int mOffset,浮点数a,浮点数x,浮点数y,浮点数z)
围绕轴(x,y,z)将矩阵m旋转角度a(以度为单位)。
现在,我了解到我们提供了一个modelMatrix,该矩阵中的偏移量和角度旋转,但是为什么我们必须提供xyz-轴分量,这些值实际上是做什么的呢?
希望有人能给我关于rotateM方法的清晰解释,在此先感谢!
private void positionRectangleInScene() {
setIdentityM(modelMatrix, 0);
rotateM(
modelMatrix, // m : source matrix
0, // mOffset : index into m where the matrix starts
0f, // a : angle ato rotate in degrees
1f, // x : x-axis component
1f, // y : y-axis component
1f); // z : z-axis component
multiplyMM(
modelViewProjectionMatrix, 0,
viewProjectionMatrix, 0,
modelMatrix, 0);
}
最佳答案
xyz值表示旋转轴。例如,围绕y轴的旋转将指定为(m,0,angle,0,1,0)
。您指定为(1,1,1)的内容表示您将绕所有3个轴旋转,而不是典型用法。
关于android opengl-es-2.0 -rotateM解释,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22114808/