
problem.1, 2, 3
void drawCircle(float r, int num, Vec2d c){
Vec2d P;
glColor3f(1,1,1);
glLineWidth(1.5);
glBegin(GL_LINE_STRIP);
for (int i=0;i<num;i++){
float angle = i*2*PI / num;
P.x = cos(angle)*r;
P.y = sin(angle)*r;
glVertex2f(P.x+c.x,P.y+c.y);
}
glVertex2f(r+c.x,0+c.y);
glEnd();
}
void drawOval(float hr, float vr, int num, Vec2d c){
Vec2d P;
glColor3f(1,1,1);
glLineWidth(1.5);
glBegin(GL_LINE_STRIP);
for (int i=0;i<num;i++){
float angle = i*2*PI / num;
P.x = cos(angle)*hr;
P.y = sin(angle)*vr;
glVertex2f(P.x+c.x,P.y+c.y);
}
glVertex2f(hr+c.x,0+c.y);
glEnd();
}
//inside diplayFunc()
float pcenter=100;
for(int i=1;i<=5;i++){
drawCircle(10*(i),30,Vec2d(pcenter+(i-1)*10+i*10,windowH/4));
pcenter=pcenter+(i-1)*10+i*10;
}
float pcenter2=0;
for(int i=1;i<=5;i++){
drawCircle(50,i+2,Vec2d(pcenter2+100,2*windowH/4));
pcenter2=pcenter2+100;
}
float pcenter3=50;
for(int i=1;i<=10;i++){
drawOval(i*10,(11-i)*10,50,Vec2d(pcenter3+(i-1)*10+i*10,3*windowH/4));
pcenter3=pcenter3+(i-1)*10+i*10;
}