ホームに戻る
 曲面

図07_00:左端が始めの端、右端が終わりの端

ソースコード:glut07_nurb.c
 解説

曲面を描きます。

曲線の数式については前のページを参照してください。

曲面は4つの曲線を用いて作成されます。

1つ目の曲線は曲面の始めの端。
2つ目の曲線は1つ目の曲線のハンドル。
3つ目の曲線は4つ目の曲線のハンドル。
4つ目の曲線は曲面の終わりの端

よって、曲線のために4つの点が必要で、
曲面のために曲線が4つ必要なので合計16の点が必要。

点の情報は glMap2 で指定します。

第1引数は以下より選ぶ、

GL_MAP2_VERTEX_3:glVertex3
GL_MAP2_VERTEX_4:glVertex4
GL_MAP2_INDEX:glIndex
GL_MAP2_COLOR_4:glColor4
GL_MAP2_NORMAL:glNormal
GL_MAP2_TEXTURE_COORD_1:glTexCoord1
GL_MAP2_TEXTURE_COORD_2:glTexCoord2
GL_MAP2_TEXTURE_COORD_3:glTexCoord3
GL_MAP2_TEXTURE_COORD_4:glTexCoord4

第2〜第5引数は順に、

曲線の変化の幅の開始と終点、1要素の幅と要素数、

第6〜第9引数は順に、
曲面の変化の幅の開始と終点、1要素の幅と要素数、

第10引数は点情報へのポインタとなります。

この手順で曲線と同じように、

glEvalCoord2 を呼べば曲面を描ける。

glEvalMesh2 はこの手順をもっと簡単にできる。

まず、glMapGrid2 で変化幅の開始から終点とその区切りを指定。

次に glEvalMesh2 で区切りの開始と終点を指定し描画。

第1引数のパラメータには以下のものがある。

GL_FILL:面
GL_LINE:線
GL_POINT:点

glEvalMesh では結局は内部でそれぞれ、

GL_QUAD_STRIP:面
GL_LINE_STRIP:線
GL_POINTS:点

を使い glEvalCoord2 で描画している。

inserted by FC2 system