【发布时间】:2017-07-21 13:53:40
【问题描述】:
我正在阅读适用于 Android 的 OpenGL ES 2。 第 8 章的问题是围绕桌子的中心旋转相机。
换句话说... 我设置视图矩阵的方式如下。
setLookAtM(viewMatrix, 0, 0f, 1.2f, 2.2f, 0f, 0f, 0f, 0f, 1f, 0f);
现在我想围绕 Y 轴围绕原点旋转它 我应该为此编写什么代码。
【问题讨论】:
我正在阅读适用于 Android 的 OpenGL ES 2。 第 8 章的问题是围绕桌子的中心旋转相机。
换句话说... 我设置视图矩阵的方式如下。
setLookAtM(viewMatrix, 0, 0f, 1.2f, 2.2f, 0f, 0f, 0f, 0f, 1f, 0f);
现在我想围绕 Y 轴围绕原点旋转它 我应该为此编写什么代码。
【问题讨论】:
如果你想绕桌子的中心旋转,你必须平移相机,然后设置它的方向指向中间。
圆上的位置很容易计算。
float angle = 30.0f;
float radius = 2.0f;
float x = (float)( radius * Math.cos(angle));
float y = (float)( radius * Math.sin(angle));
Matrix.translateM(viewMatrix, 0, -x, 0, -y);
Matrix.setLookAtM(viewMatrix, 0, 0f, 1.2f, 2.2f, 0f, 0f, 0f, 0f, 1f, 0f);
【讨论】: