glRotatef

glRotatef




表示物を回転させる!

GL10#glRotatef( float angle, float x, float y, float z )

glRotatefは描画するものを指定したX、Y、Zベクトル軸を中心に回転させる行列を設定します。

angle回転する角度を設定します。単位は[度]です
x回転軸ベクトルのX成分です。
y回転軸ベクトルのY成分です。
z回転軸ベクトルのZ成分です。

glRotatefはワールド座標への変換で主に使います。
glScalef、glTranslatefもあわせて使うことが多いです。

GL10 gl;

gl.glMatrixMode( GL10.GL_MODELVIEW );
gl.glLoadIdentity();

gl.glScalef( 1.0f, 1.0f, 1.0f );
gl.glRotatef( 30.0f, 0.0f, 0.0f, 1.0f );
gl.glRotatef( 20.0f, 1.0f, 0.0f, 0.0f );
gl.glRotatef( 50.0f, 0.0f, 1.0f, 0.0f );
gl.glTranslatef( 50.0f, 60.0f, 0.0f );

↑のコードだと

  1. 拡大率をXYZ軸ですべて1に設定
  2. Z軸を中心に30度回転
  3. X軸を中心に20度回転
  4. Y軸を中心に50度回転
  5. Xを50、Yを60移動
となります。

glRotatef( 0.0f, 0.0f, 0.0f, 1.0f )


回転なし 回転なしイメージ

glRotatef( 60.0f, 1.0f, 0.0f, 0.0f )


X軸を中心に60度回転 X軸を中心に60度回転イメージ

glRotatef( 60.0f, 0.0f, 1.0f, 0.0f )


Y軸を中心に60度回転 Y軸を中心に60度回転イメージ

glRotatef( 60.0f, 0.0f, 0.0f, 1.0f )


Z軸を中心に60度回転 Z軸を中心に60度回転イメージ

glRotatef( 60.0f, 1.0f, 1.0f, 0.0f )


XY軸を中心に60度回転 XY軸を中心に60度回転イメージ