Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <glut.h>
- #include <math.h>
- void drawCircle(float x, float y, float r, int amountSegments)
- {
- glBegin(GL_TRIANGLE_FAN);
- for (int i = 0; i < amountSegments; i++)
- {
- float angle = 2.0 * 3.1415926 * float(i) / float(amountSegments);
- float dx = r * cosf(angle);
- float dy = r * sinf(angle);
- glVertex3f(x + dx, y + dy, 1);
- }
- glEnd();
- }
- void display()
- {
- glClear(GL_COLOR_BUFFER_BIT);
- glColor3d(0.5, 0.5, 0.5);
- glBegin(GL_QUADS);
- glVertex3d(80, 300, 0);
- glVertex3d(100, 300, 0);
- glVertex3d(100, 90, 0);
- glVertex3d(80, 90, 0);
- glEnd();
- glColor3d(0.5, 0.5, 0.5);
- glBegin(GL_QUADS);
- glVertex3d(60, 90, 0);
- glVertex3d(120, 90, 0);
- glVertex3d(120, 20, 0);
- glVertex3d(60, 20, 0);
- glEnd();
- glColor3f(1.0, 0.0, 0.0);
- drawCircle(90, 32, 6, 30);
- glColor3f(1.0, 1.0, 0.0);
- drawCircle(90, 55, 6, 30);
- glColor3f(0.0, 1.0, 0.0);
- drawCircle(90, 78, 6, 30);
- glFlush();
- }
- int main(int argc, char **argv)
- {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
- glutInitWindowSize(500, 500);
- glutInitWindowPosition(100, 200);
- glutCreateWindow("Лабораторная работа 6");
- glClearColor(1, 1, 1, 1); //set bg color
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluOrtho2D(0, 200, 200, 0);
- glutDisplayFunc(display);
- glutMainLoop();
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement