少し長すぎるので、ここに私のプログラム全体を投稿することはしません。しかし、私はこのレンダラー(短縮)を持っています:
class OpenGLRenderer implements Renderer {
private CubicPolygon cube;
public OpenGLRenderer(Context context) {
this.context = context;
cube = new CubicPolygon();
}
public void onDrawFrame(GL10 gl) {
gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT);
gl.glLoadIdentity();
gl.glTranslatef(0.0f, 0.0f, -9.0f);
gl.glScalef(0.8f, 0.8f, 0.8f);
// If it's just a regular rotation
if (!numberHasBeenDrawn) {
gl.glRotatef(getXRotation(rotatingOfDOOMFire), 1, 0, 0);
gl.glRotatef(getYRotation(rotatingOfDOOMFire), 0, 1, 0);
gl.glRotatef(getZRotation(rotatingOfDOOMFire), 0, 0, 1);
}
// If there is a chosen one (number that is)
if (numberHasBeenDrawn) {
gl.glRotatef(xAnimation(number), 1, 0, 0);
gl.glRotatef(yAnimation(number), 0, 1, 0);
}
gl.glFinish();
cube.draw(gl);
}
ここで、キューブ オブジェクトの現在の回転値を "numberHasBeenDrawn" if ステートメントで取得して、キューブを回転させる滑らかなエンド アニメーションを作成できるようにしたいと考えています。OpenGLはおそらくすべての回転値を便利な(ほとんど読めない)マトリックスに保存していますが、グーグルで調べた後、WHEREについて何も見つけることができませんでした(オブジェクトを最初に回転させる方法だけで、すでに行っています)。
// 編集: 参考になるかもしれないコードをもっと見たい場合は、先に進んで質問してください。それは秘密ではありません。投稿することもできます ;)