Untitled
Anonymous
plain_text
02/18/2026 10:32 AM
1.7 KB
16
Indexable
#include <GL/glut.h>
#include <stdio.h>
int x_start, y_start, x_end, y_end;
void drawLineBresenham(int x1, int y1, int x2, int y2) {
int dx = x2 - x1;
int dy = y2 - y1;
int p = 2 * dy - dx;
int x = x1;
int y = y1;
glBegin(GL_POINTS);
for (x = x1; x <= x2; x++) {
glVertex2i(x, y);
if (p < 0) {
p = p + 2 * dy;
} else {
y = y + 1;
p = p + 2 * dy - 2 * dx;
}
}
glEnd();
}
void display() {
glClear(GL_COLOR_BUFFER_BIT);
glColor3f(1.0, 0.0, 0.0);
glPointSize(1.0);
drawLineBresenham(x_start, y_start, x_end, y_end);
glFlush();
}
void init() {
glClearColor(0, 0, 0, 0);
glMatrixMode(GL_PROJECTION);
glLoadIdentity();
gluOrtho2D(0, 500, 0, 500);
}
int main(int argc, char** argv) {
printf("Enter x1 y1 (e.g., 50 50): ");
scanf("%d %d", &x_start, &y_start);
printf("Enter x2 y2 (e.g., 200 150): ");
scanf("%d %d", &x_end, &y_end);
glutInit(&argc, argv);
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);
glutInitWindowSize(500, 500);
glutCreateWindow("Simple Bresenham Line");
init();
glutDisplayFunc(display);
glutMainLoop();
return 0;
}
Editor is loading...
Leave a Comment