Program:
#include<GL/glut.h>
#include<stdio.h>
#include<math.h>
#define pi 3.142857
void DrawCircle(float cx, float cy, float r, int num_segments)
{
glBegin(GL_LINE_LOOP);
for(int ii = 0; ii < num_segments; ii++)
{
float theta = 2.0f * 3.1415926f * float(ii) / float(num_segments);//get the current angle
float x = r * cosf(theta);//calculate the x component
float y = r * sinf(theta);//calculate the y component
glVertex2f(x + cx, y + cy);//output vertex
}
glEnd();
}
void draw()
{
glClear(GL_COLOR_BUFFER_BIT);
glClearColor(0,0,0,1);
glColor3f(1,0,0);
glOrtho(0,500,500,0,0,1);
glPointSize(4);
glBegin(GL_LINES);
glVertex2f(70,100);
glVertex2f(300,100);
glVertex2f(300,100);
glVertex2f(300,400);
glVertex2f(70,100);
glVertex2f(30,250);
glVertex2f(70,100);
glVertex2f(120,250);
glVertex2f(120,250);
glVertex2f(120,400);
glEnd();
glBegin(GL_LINE_LOOP);
glVertex2f(30,250);
glVertex2f(300,250);
glVertex2f(300,400);
glVertex2f(30,400);
glEnd();
DrawCircle(70,180,15,20);
glFlush();
}
int main(int argc, char **argv)
{
glutInit(&argc,argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowPosition(300,300);
glutInitWindowSize(500,500);
glutCreateWindow("Basic Structure");
glutDisplayFunc(draw);
glutMainLoop();
return 0;
}
Output: