在OpenGL ES 2.0中更改四边形的中心以进行旋转

时间:2013-04-06 18:04:08

标签: android rotation opengl-es-2.0 translation

所有

使用下面的代码我的四位移动位置。但是,我不希望这种情况发生,我所追求的只是旋转中心的移动。

有没有人有任何想法?

注意,如果我在旋转之前放置一个平移功能,它就没有任何效果。

任何帮助将不胜感激。感谢。

Matrix.setIdentityM(mRotationMatrix, 0);

Matrix.setRotateM(mRotationMatrix, 0, 45, 0, 0, 0.1f);

Matrix.translateM(mRotationMatrix, 0, quadCenterX, quadCenterY, 0f);

// Combine the rotation matrix with the projection and camera view
Matrix.multiplyMM(mvpMatrix2, 0, mvpMatrix, 0,  mRotationMatrix, 0);

1 个答案:

答案 0 :(得分:3)

围绕不同的旋转中心旋转:

Matrix.setIdentityM(mRotationMatrix, 0);

Matrix.translateM(mRotationMatrix, 0, quadCenterX, quadCenterY, 0f);
Matrix.rotateM(mRotationMatrix, 0, 45, 0, 0, 0.1f);
Matrix.translateM(mRotationMatrix, 0, -quadCenterX, -quadCenterY, 0f);

请注意,您必须使用rotateM而不是setRotateM,因为setRotateM会覆盖之前的Matrix。