最終更新: mikk_ni3_92 2008年07月16日(水) 16:44:33履歴
現在地 >> メニュー >> 基本編04 >> 物体操作
次 >> 複数の物体操作
基本的な物体操作として
などがある。
[例]
この場合、描画物Aが
アフィン変換はソースコードの下から順に行われる。
従って、アフィン変換の順番には気をつける必要がある。
例えば、
[アフィン変換A]
[アフィン変換B]
次 >> 複数の物体操作
次 >> 複数の物体操作
基本的な物体操作として
- 行列のリセット → glLoadIdentity()
- 平行移動 → glTranslate()関数
- 回転 → glRotate()関数
- 拡大・縮小 → glScale()関数
などがある。
[例]
void display() { ... ... glTranslated(1,0,0); glRoteted(45,0,1,0); glScaled(2,2,2); [描画物A] ... ... }
この場合、描画物Aが
- (x,y,z)方向に2倍に拡大
- y軸中心に45回転
- x方向に1だけ並行移動
アフィン変換はソースコードの下から順に行われる。
従って、アフィン変換の順番には気をつける必要がある。
例えば、
45度の回転とx方向に+1だけ並行移動する場合以下の2つは違う位置になる。
[アフィン変換A]
glTaranslated(1,0,0) [2].平行移動 glRotated(45,0,1,0) [1].45度回転 glutSolidCube(0.5); //立方体の描画
[アフィン変換B]
glRotated(45,0,1,0) [2].45度回転 glTranslated(1,0,0) [1].平行移動 glutSolidCube(0.5); //立方体の描画
次 >> 複数の物体操作