OpenGL講習 インデックスに戻る

内容

前回はgluの関数で球を描画してみましたが、glutのほうでもいくつかの基本図形描画関数があります。
こちらのほうが手順が簡単なので、それらを組み合わせて動きのあるグラフィックを作成してみましょう。

Sample06.gif

ソースダウンロード

http://dl.getdropbox.com/u/235401/OpenGL/Sample06.zip

解説

下のようにさまざまな基本図形が用意されています。
それぞれglutSolidとglutWireという2パターンが用意されていますが、
Solidの場合は面をもった図形で、Wireの場合はワイヤーフレームで描画されます。

基本図形

立方体

 
void glutSolidCube( GLdouble size )
void glutWireCube( GLdouble size )
 
  • size 立方体の1辺の長さ

 
void glutSolidSphere( GLdouble radius, GLint slices, GLint stacks )
void glutWireSphere( GLdouble radius, GLint slices, GLint stacks )
 
  • radius 球の半径
  • slices 経度方向の分割数
  • stacks 緯度方向の分割数

ドーナツ

 
void glutSolidTorus( GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings )
void glutWireTorus( GLdouble innerRadius, GLdouble outerRadius, GLint nsides, GLint rings)
 
  • innerRadius 内側の半径
  • outerRadius 外側の半径
  • nsides 断面方向の分割数
  • rings 周方向の分割数

円錐

 
void glutSolidCone( GLdouble base, GLdouble height, GLint slices, GLint stacks )
void glutWireCone( GLdouble base, GLdouble height, GLint slices, GLint stacks )
 
  • base 底面の半径
  • height 円錐の高さ
  • slices 円周の分割数
  • stacks 高さ方向の分割数

ティーポット

 
void glutSolidTeapot( GLdouble size )
void glutWireTeapot( GLdouble size )
 
  • size ティーポットのサイズ

その他

上記以外にも、四面体・十二面体などの図形があります。

ポイント

これらの関数は全て、位置は座標系の原点に、向きはそれぞれ規定の向きで、固定されて描画されます。
そのため好みの位置と向きで描画できるようにするために、このサンプルではglTranslatedとglRotatedを使っています。

 
glRotated( 3, 1, 0, 0 );
glTranslated( 2, 1, 4 );
glutSolidTeapot( 1 );
glTranslated( -2, -1, -4 );
glRotated( -3, 1, 0, 0 );
 

例えば上記のように、描画直前に好みの位置になるように移動・回転を行い、
描画後に元に戻すようにしています。


添付ファイル: fileSample06.gif 1634件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2012-02-21 (火) 17:06:25 (2096d)