Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <GL/glut.h>
- #include <GL/gl.h>
- #include <math.h>
- #include <stdio.h>
- void draw_shape(float x0, float y0, float R, float R2) {
- float x[8], y[8], N = 8;
- float x2[40], y2[40], N2 = 40;
- for (int i = 0; i < N; i++) {
- x[i] = R * cosf(2 * 3.14159 * i / N) + x0;
- y[i] = R * sinf(2 * 3.14159 * i / N) + y0;
- }
- glBegin(GL_LINES);
- for (int i = 0; i < N; i++) {
- if (i == 6) {
- glVertex2i(x[i], y[i]);
- glVertex2i(x[0], y[0]);
- }
- else if (i == 7) {
- glVertex2i(x[i], y[i]);
- glVertex2i(x[1], y[1]);
- }
- else {
- glVertex2i(x[i], y[i]);
- glVertex2i(x[i + 2], y[i + 2]);
- }
- }
- glEnd();
- for (int i = 0; i < N2; i++) {
- x2[i] = R2 * cosf(2 * 3.14159 * i / N2) + x0;
- y2[i] = R2 * sinf(2 * 3.14159 * i / N2) + y0;
- }
- glBegin(GL_LINES);
- for (int i = 0; i < N2; i++) {
- if (i == 39) {
- glVertex2i(x2[i], y2[i]);
- glVertex2i(x2[0], y2[0]);
- }
- else {
- glVertex2i(x2[i], y2[i]);
- glVertex2i(x2[i + 1], y2[i + 1]);
- }
- }
- glEnd();
- glFlush();
- }
- void display() {
- glClear(GL_COLOR_BUFFER_BIT);
- draw_shape(320, 240, 100, 50);
- }
- //void reshape(int width, int height) {
- // glClear(GL_COLOR_BUFFER_BIT);
- //
- // float x = width / 2.0;
- // float y = height / 2.0;
- //
- // draw_shape(x, y, 100, 50);
- //}
- int main(int argc, char** argv) {
- glutInit(&argc, argv);
- glutInitDisplayMode(GLUT_SINGLE|GLUT_RGB);
- glutInitWindowSize(640, 480);
- glutInitWindowPosition(10, 10);
- glutCreateWindow("LAB 1");
- glClearColor(1.0, 1.0, 1.0, 0.0);
- glColor3f(0.0,0.0,0.0);
- glPointSize(4.0);
- glMatrixMode(GL_PROJECTION);
- glLoadIdentity();
- gluOrtho2D(0, 640.0, 0, 480.0);
- glutDisplayFunc(display);
- //glutReshapeFunc(reshape);
- glutMainLoop();
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement