Codigo de Bresenham
Codigo de Bresenham
Codigo de Bresenham
h>
#include<GL/glut.h>
#include <iostream>
#include<math.h>
int ancho = 500, largo = 500;
bool cli = false;
int xsub1 = 0; int ysub1 = 0;
int xsub2 = 0; int ysub2 = 0;
x = x1;
y = y1;
dx = abs(x1 - x0);
dy = abs(y1 - y0);
s1 = signo(x1 - x0);
s2 = signo(y1 - y0);
intercambio = 0;
}
e = 2 * dy - dx;
for (i = 1; i <= dx; i++)
{
pixel(x, y,0);
if (e >= 0)
{
if (intercambio == 1)
{
x = x + s1;
}
else
{
y = y + s2;
}
e = e - (2 * dx);
}
if (intercambio == 1) {
y = y + s2;
}
else {
x = x + s1;
}
e = e + 2 * dy;
}
}
void mouse(int btn, int state, int x, int y) //estado del mause y coordenadas
{
//glClear(GL_COLOR_BUFFER_BIT);
if (cli == false) {
if (cli == true) {
glFlush();
}
void plano() {
for (int i = 0; i < ancho; i++) {
pixel(ancho / 2, i,1);
pixel(i, largo / 2,1);
}
glFlush();
glutMouseFunc(mouse);
}
int main(int argc, char* argv[]) {
glutInit(&argc, argv);//libreria en modo grafico
glutInitDisplayMode(GLUT_SINGLE | GLUT_RGB);//DISPLAY COLOR DE LA PANTALLA y
double el intercambio de un pixel a otro
glutInitWindowSize(ancho, largo);//tamaño de pantalla
glutInitWindowPosition(100, 100);//posicion donde aparecera cuando abramos el
programa
glutCreateWindow("linea entre dos puntos");//crear ventana con las
caracteristicas dichas y el titulo
gluOrtho2D(0, ancho, largo, 0);//para el dibujado
glClearColor(1, 1, 1, 1);//canales de los colores
//glutDisplayFunc(display);//se ejecuta cada vez que tengamos que redibujar
el pixel
glutDisplayFunc(plano);