#include #include #include "coil.h" using namespace std; void disp(void); void idle(void); void drawAxis(void); static Coil *coil; int main(int argc,char **argv){ glutInit(&argc,argv); glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); glutCreateWindow("Coil"); glClearColor(0.0,0.0,0.0,0.0); coil = new Coil(0.2,0.1,10,90); glutDisplayFunc(disp); glutIdleFunc(idle); glutMainLoop(); } void disp(void){ glClear(GL_COLOR_BUFFER_BIT); glColor3f(1.0,1.0,1.0); coil->draw(); drawAxis(); glutSwapBuffers(); } void drawAxis(){ glBegin(GL_LINES); glColor3f(1.0,0.0,0.0); glVertex3f(0.0,0.0,0.0); glVertex3f(0.80,0.0,0.0); glColor3f(0.0,1.0,0.0); glVertex3f(0.0,0.0,0.0); glVertex3f(0.0,0.80,0.0); glColor3f(0.0,0.0,1.0); glVertex3f(0.0,0.0,0.0); glVertex3f(0.0,0.0,0.80); glEnd(); glPushMatrix(); glColor3f(1.0,0.0,0.0); glTranslatef(0.80,0.0,0.0); glRotatef(90,0.0,1.0,0.0); glutSolidCone(0.05,0.1,10,10); glPopMatrix(); glPushMatrix(); glColor3f(0.0,1.0,0.0); glTranslatef(0.0,0.80,0.0); glRotatef(-90,1.0,0.0,0.0); glutSolidCone(0.05,0.1,10,10); glPopMatrix(); glPushMatrix(); glColor3f(0.0,0.0,1.0); glTranslatef(0.0,0.0,0.80); glutSolidCone(0.05,0.1,10,10); glPopMatrix(); } void idle(void){ coil->setAngle(coil->getAngle()+1); glutPostRedisplay(); }