martes, 10 de abril de 2007

Mejoramiento del algoritmo para pendientes de m=1 y m=-1 o mayores

Mejoramiento del algoritmo de linea de Bresenham


void lineaBresenham(int xo,yo,x1,y1){
int dx=x1-xo;
int dy=y1-yo;
int x=xo;
int y=yo;
int do=2*dy-dx;
int dE=2*dy;
int dNE=2*(dy-dx);
int d=do;
int m= (y1-yo)/(x1-xo);
while(x != x1){
if(d <= 0){ //Direccion E
punto(x,y);
x=x+m;
d=d+dE;
}
else{ //Direccion NE
punto(x,y);
x=x+m;
y=y+1;
d=d+dNE;
}
}
}

En este codigo se hace uso de la pendiente para sumarloa la x para calcular la detla d, y asi poder manejar pendientesde m=1 y m=-1 o mayores en valor.

No hay comentarios: