0

全部

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

有没有人有任何想法?

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

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

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);
4

1 回答 1

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。

于 2013-04-06T19:01:20.620 回答