problem.6
void drawClock(float hour, float minute, float sec){
float angleH = 2*PI*(12-hour)/12-2*PI/12*(minute)/60+PI/2;
float angleM = 2*PI*(60-minute)/60+PI/2;
//outline;
//int num=100;
glColor3f(1,1,1);
glBegin(GL_TRIANGLE_FAN);
glVertex2f(windowW/2,windowH/2);
for (int i=0;i<100;i++){
float angle = i*2*PI / 100;
glColor3f(.03,.03,0);
glVertex2f(cos(angle)*200+windowW/2,sin(angle)*200+windowH/2);
}
glVertex2f(200+windowW/2,0+windowH/2);
glEnd();
//hour
glBegin(GL_QUADS);
glColor3f(.0,.0,.0);
glVertex2f(cos(angleH+0.05)*100+windowW/2,sin(angleH+0.05)*100+windowH/2);
glVertex2f(cos(angleH-0.05)*100+windowW/2,sin(angleH-0.05)*100+windowH/2);
glColor3f(1.0,1.0,1.0);
glVertex2f(cos(angleH+PI+0.5)*10+windowW/2,sin(angleH+PI+0.5)*10+windowH/2);
glVertex2f(cos(angleH+PI-0.5)*10+windowW/2,sin(angleH+PI-0.5)*10+windowH/2);
glEnd();
glColor3f(0.2,0.2,0.2);
glLineWidth(3);
glBegin(GL_LINE_STRIP);
for (int i=0;i<30;i++){
float angle = i*2*PI / 30;
glVertex2f(cos(angle)*20+cos(angleH)*100+windowW/2,sin(angle)*20+sin(angleH)*100+windowH/2);
}
glVertex2f(20+cos(angleH)*100+windowW/2,0+sin(angleH)*100+windowH/2);
glEnd();
//minute
glBegin(GL_QUADS);
glColor3f(.0,.0,.0);
glVertex2f(cos(angleM+0.03)*150+windowW/2,sin(angleM+0.03)*150+windowH/2);
glVertex2f(cos(angleM-0.03)*150+windowW/2,sin(angleM-0.03)*150+windowH/2);
glColor3f(1.0,1.0,1.0);
glVertex2f(cos(angleM+PI+0.5)*10+windowW/2,sin(angleM+PI+0.5)*10+windowH/2);
glVertex2f(cos(angleM+PI-0.5)*10+windowW/2,sin(angleM+PI-0.5)*10+windowH/2);
glEnd();
//
//if(sec%2==0){
glColor3f(0,0,0);
//else{
// glColor3f(1,1,1);
//}
glPointSize(3);
glBegin(GL_POINTS);
//glVertex2f(windowW/2,windowH/2);
for (int i=0;i<12;i++){
float angle = i*2*PI / 12;
//glColor3f(.8,.8,.8);
glVertex2f(cos(angle)*150+windowW/2,sin(angle)*150+windowH/2);
}
//glVertex2f(150+windowW/2,0+windowH/2);
glEnd();
glColor3f(1,1,1);
glLineWidth(1.5);
glBegin(GL_TRIANGLE_FAN);
//glBegin(GL_LINE_STRIP);
glVertex2f(windowW/2,windowH/2);
for (int i=0;i<50;i++){
float angle = i*2*PI / 50;
glColor3f(.8,.8,.8);
glVertex2f(cos(angle)*15+windowW/2,sin(angle)*15+windowH/2);
}
glVertex2f(15+windowW/2,0+windowH/2);
glEnd();
}
//inside displayFunc()
s++;
if(s>=60){
s=0;
m=m+1;
}
if(m>=60){
m=0;
h=h+1;
}
//drawClock(h,m,s);
drawClock(6,10,30);