【发布时间】:2020-08-13 07:06:00
【问题描述】:
要沿横坐标轴 (X) 围绕对象旋转相机,我使用以下代码:
private float k = 0f;
...
@Override
public void onDrawFrame(GL10 gl) {
// Math.PI * 2 - full rotation
k = (k >= Math.PI * 2) ? 0.0f : k + 0.01f; // gradually rotate the camera
float radius = 2.6f;
float x = (float) (radius * Math.cos(k));
float z = (float) (radius * Math.sin(k));
Matrix.setLookAtM(viewMatrix, 0, x, 0, z, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
...
}
沿纵坐标轴 (Y) 围绕对象旋转相机:
...
float y = (float) (radius * Math.cos(k));
float z = (float) (radius * Math.sin(k));
Matrix.setLookAtM(viewMatrix, 0, 0, y, z, 0f, 0f, 0f, 0f, 1.0f, 0.0f);
...
但我不明白如何沿倾斜轴围绕物体旋转相机。这种情况下x、y、z的比例应该是多少?
感谢您的任何评论/回复!
注意:对象的中心与相机正在看的点 (0,0,0) 重合。
【问题讨论】:
标签: android matrix trigonometry