CGL Assignment1
CGL Assignment1
Code :
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <GL/glut.h>
#include <math.h>
dx = X2 - Xl;
dy = Y2 - Yl;
length = (abs(dx) >= abs(dy)) ? abs(dx) : abs(dy);
dx = dx / length;
dy = dy / length;
x = Xl;
y = Yl;
i = 1;
void drawpatt(int ax, int ay, int bx, int by, int cx, int cy, int dx, int dy, int n) {
int mlx, mly, m2x, m2y, m3x, m3y, m4x, m4y;
// Midpoint calculations
mlx = (ax + bx) / 2;
mly = (ay + by) / 2;
m2x = (bx + cx) / 2;
m2y = (by + cy) / 2;
m3x = (cx + dx) / 2;
m3y = (cy + dy) / 2;
m4x = (dx + ax) / 2;
m4y = (dy + ay) / 2;
n--;
if (n != 0) {
drawpatt(mlx, mly, m2x, m2y, m3x, m3y, m4x, m4y, n);
}
}
void display() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0);
glBegin(GL_LINES);
glVertex2i(-200, 0);
glVertex2i(200, 0);
glVertex2i(0, -200);
glVertex2i(0, 200);
glEnd();
glFlush();
}
void Init() {
glClearColor(1, 1, 1, 0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(-200.0, 200.0, -200.0, 200.0);
glMatrixMode(GL_MODELVIEW);
}
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutInitWindowPosition(100, 100);
glutCreateWindow("Pattern Drawing");
Init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Output:
Enter the
value of left
bottom xl:
10
Enter the
value of left
bottom yl:
10
Enter the
value of
right bottom
x2: 100
Enter the
value of top
right y2: 100