最終更新: mikk_ni3_92 2008年12月26日(金) 16:19:22履歴
現在地 >> メニュー >> 基本編08 >> AUXによる立体表示 >> 基本編08::まとめコード3
Auxライブラリを使って、円柱を描画せよ。
※visual studioでlibファイルに関連付けがない場合、
[プロジェクト]→[プロパティ]→[リンカ]→[入力]→[追加の依存ファイル]に「GlAux.lib」を追加する
等の設定が必要となる。
Auxライブラリを使って、円柱を描画せよ。
※visual studioでlibファイルに関連付けがない場合、
[プロジェクト]→[プロパティ]→[リンカ]→[入力]→[追加の依存ファイル]に「GlAux.lib」を追加する
等の設定が必要となる。
#include <GL/glut.h> #include <GL/glaux.h> //---------- プロトタイプ宣言 -----------------// void display(); void reshape(int w, int h); void timer(int value); //-----------OpenGLの初期設定---------------------// void GLUT_INIT() { glutInitDisplayMode(GLUT_RGBA| GLUT_DOUBLE | GLUT_DEPTH); glutInitWindowSize(640,480); glutCreateWindow("Aux Library"); } void GLUT_CALL_FUNC() { glutDisplayFunc(display); glutReshapeFunc(reshape); glutTimerFunc(0,timer,17); } void MY_INIT() { glClearColor(1.0, 1.0, 1.0, 1.0); float light_pos[] = { 0.0, 3.0, 5.0, 1.0 }; glLightfv(GL_LIGHT0, GL_POSITION, light_pos); glEnable(GL_LIGHTING); glEnable(GL_LIGHT0); glEnable(GL_DEPTH_TEST); } int main(int argc, char **argv) { glutInit(&argc,argv); GLUT_INIT(); GLUT_CALL_FUNC(); MY_INIT(); glutMainLoop(); return 0; } //------------ ここから各種コールバック -----------------// void display() { static int r = 0; glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glPushMatrix(); glRotatef(static_cast<float>(r), 0.0, 1.0, 0.0); auxSolidCylinder(1,1); glPopMatrix(); glutSwapBuffers(); if(++r > 360){r= 0;} } void reshape(int w, int h) { glViewport(0, 0, w, h); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(30.0, (double)w / (double)h, 1.0, 100.0); glMatrixMode(GL_MODELVIEW); glLoadIdentity(); gluLookAt(3.0, 4.0, 5.0, 0.0, 0.0, 0.0, 0.0, 1.0, 0.0); } void timer(int value) { glutPostRedisplay(); glutTimerFunc(value,timer,17); //タイマー関数 }