移動・回転・拡大・縮小
前回http://d.hatena.ne.jp/kambayashi/20081031/1225474034からの続き。
GLActivity.java、GLView.javaに関しては変更が無いので省略。
Rendererのdraw()で呼んでいるglColor4f()のコメントアウトと、
GLThread.drawFrameで行っているカメラの視点移動の停止を行い。
GLThread.drawFrameのmRenderer.draw()を呼んでいる部分を以下のように変更。
サンプル
{ //ポリゴンカラーを青にする gl.glColor4f(0.0f, 0.0f, 1.0f, 1.0f); //現在の座標系を保存 gl.glPushMatrix(); //座標系を右に移動 gl.glTranslatef(1.0f, 0.0f, 0.0f); //座標系をY軸(画面に対して垂直ライン)に対して15度回転 gl.glRotatef(15.0f, 0.0f, 1.0f, 0.0f); //座標系のx,y,zをそれぞれ1.5倍にする(頂点座標1.0は1.5になる)。 gl.glScalef(1.5f, 1.5f, 1.5f); //描画 mRenderer.draw(gl); //最後に保存した座標系に戻す gl.glPopMatrix(); } { //ポリゴンカラーを青にする gl.glColor4f(1.0f, 0.0f, 0.0f, 1.0f); //現在の座標系を保存 gl.glPushMatrix(); //座標系を左に移動 gl.glTranslatef(-1.0f, 0.0f, 0.0f); //座標系をY軸(画面に対して垂直ライン)に対して45度回転 gl.glRotatef(45.0f, 0.0f, 1.0f, 0.0f); //座標系のx,y,zをそれぞれ0.5倍にする(頂点座標1.0は0.5になる)。 gl.glScalef(0.5f, 0.5f, 0.5f); //描画 mRenderer.draw(gl); //最後に保存した座標系に戻す gl.glPopMatrix(); }