Tema: graficacion
Ver Mensaje Individual
  #4  
Antiguo 26-06-2006
Avatar de seoane
[seoane] seoane is offline
Miembro Premium
 
Registrado: feb 2004
Ubicación: A Coruña, España
Posts: 3.717
Reputación: 24
seoane Va por buen camino
A simple vista, si el valor de x1=x2 y y1=y2 steps seria igual a cero, lo que origina una division por cero (supongo que ese es el error). Supongo que con una comprobacion antes de hacer la division seria suficiente.

Código Delphi [-]
procedure line(x1,y1,x2,y2:integer);
Var
   dx,dy,steps,i:integer;
  xIncrement,yIncrement,x,y:real;
Begin
  dx:=x2-x1;
  dy:=y2-y1;
  if abs (dx) > abs (dy) then
      steps:=abs(dx)
  else
      steps:=abs(dy);
  x:=x1;
  y:=y1;
  form1.PaintBox1.Canvas.Pixels[round(x), round(y)]:=4;
  // Si steps = 0 no hay nada mas que hacer asi que salimos
  if steps = 0 then Exit;  
  xIncrement:= dx/steps;
  yIncrement:= dy/steps; 
  for i:=1 to steps do
   begin
       x:=x+xIncrement;
       y:=y+yIncrement;
       form1.PaintBox1.Canvas.Pixels[round(x), round(y)]:=4;
   end;   
End;

Última edición por seoane fecha: 26-06-2006 a las 11:34:36.
Responder Con Cita