読者です 読者をやめる 読者になる 読者になる

移動・回転・拡大・縮小

前回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();
}

参考