現在、openGLでアニメーションを作る授業をしています。
gccを使って作成しています。そこで球を横に回転させていのですが、
ソースコードが分からないです。
このプログラムだと真っ暗になってしまいます。
どこを変えたら表示されるようになりますか。
#include <stdlib.h>
#include "GL/glut.h"
#include <GL/gl.h>
#include <GL/glu.h>
#include <math.h>
#define KEY_ESC 27
float theta =0.0; /物体の回転角度/
void display(void)
{
glClear(GL_COLOR_BUFFER_BIT);
glPushMatrix(); glTranslatef(0.0,1.0,30.0); glRotatef(3.0*theta,0.2,-1.0,0.0); glRotatef(-90.0,1.0,0.2,0.0); glColor3f(1.0,1.0,0.0); glutWireSphere(1.0,15,15); /*球*/ glPopMatrix(); glutSwapBuffers();/*バッファをスワップする*/
}
void idle(void)/イベントがなければidleがつねに実行される/
{
theta=fmod(theta+0.1,360.0);/回転角を0°~360°まで0.5°づつ増加させる)/
glutPostRedisplay();/ディスプレイコールバックバック関数(display)を実行/
}
void myKbd(unsigned char key,int x,int y)
{
if(key == KEY_ESC) exit(0);
}
void myInit(char *progname)
{
int width=500,height=500;
float aspect =(float)width/(float)height;
glutInitWindowPosition(0,0); glutInitWindowSize(width,height); glutInitDisplayMode(GLUT_DOUBLE|GLUT_RGBA); /*ダブルバッファの宣言*/ glutCreateWindow(progname); glClearColor(0.0,0.0,0.0,1.0); glutKeyboardFunc(myKbd); glMatrixMode(GL_PROJECTION); glLoadIdentity(); gluPerspective(45.0,aspect,1.0,10.0); glMatrixMode(GL_MODELVIEW);
}
int main (int argc, char** argv)
{
glutInit(&argc,argv);
myInit(argv[0]);
glutDisplayFunc(display);
glutIdleFunc(idle);
/イベントが無い場合にはidleを繰り返し実行する/
glutMainLoop();
return(0);
}
あなたの回答
tips
プレビュー