開Glut專案,複製程式碼到Notepade++,貼上第2週的程式碼,在從複製的程式碼找出glutSolidSphere貼上,有3個參數,第一個是半徑,第二個是縱切,第三個是橫切。把Solid改Wire會從實心圓變成線框圓。
#include <Gl/glut.h>
float angle=0;
void drawArm1()
{
glPushMatrix();
glScalef( 1, 0.5, 0.5);
glColor3f( 0, 1, 0); glutSolidCube(0.2);
glPopMatrix();
}
void display()
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glPushMatrix();
glColor3f(1,1,1); glutSolidCube(0.4);
glPushMatrix();
glTranslatef( -0.2, 0.2, 0);
glRotatef( angle, 0,0,1);
glTranslatef( -0.1, 0, 0);
drawArm1();
glPopMatrix();
glPopMatrix();
glutSwapBuffers();
}
int diff=2;
void timer(int t){
glutTimerFunc( 30, timer, t+1);
if(angle>90) diff=-2;
if(angle<0) diff=+2;
angle += diff;
display();
}
int main(int argc, char *argv[])
{
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_RGB | GLUT_DOUBLE | GLUT_DEPTH);
glutCreateWindow("week14 timer");
glutDisplayFunc(display);
glutTimerFunc( 3000, timer, 0);
glutMainLoop();
}






沒有留言:
張貼留言