C语言中算法如下:
void DDAline(int x0,int y0,int x1,int y1)
{
  int dx,dy,epsl,k;
  float x,y,xIncre,yIncre;
  dx=x1-x0;    dy=y1-y0;
  x=x0;        y=y0;
  if((abs(dx)>abs(dy)) epsl=abs(dx);
  else epsl=abs(dy);
  xIncre=(float)dx/(float)epsl;
  yIncre=(float)dy/(float)epsl;
  for(k=0;k<=epsl;k++)
  {
    putpixel((int)(x+0.5),(int)(y+0.5));
    x+=xIncre;
    y+=yIncre;
   }
}
我用Pascal语言改编如下:
procedure TForm2.Button1Click(Sender: TObject);
  var
 dx,dy,epsl,k,x0,y0,x1,y1:integer;
   x,y,xIncre,yIncre:real;
begin
  form1.Image1.Picture.Bitmap:=Tbitmap.Create;
  form1.Image1.Picture.Bitmap.Width:=form1.Image1.Width;
  form1.Image1.Picture.Bitmap.Height:=form1.Image1.Height;
  x0:=strtoint(edit1.Text);
  y0:=strtoint(edit2.Text);
  x1:=strtoint(edit3.Text);
  y1:=strtoint(edit4.Text);
  dx:=x1-x0;
  dy:=y1-y0;
  x:=x0;
  y:=y0;
  if(abs(dx)>abs(dy)) then epsl:=abs(dx)
  else
  epsl:=abs(dy);
  xIncre:=dx/epsl;
  yIncre:=dy/epsl;
  for k:=0 to epsl do
    begin
  writeln(x+0.5,y+0.5);
    x:=x+xIncre;
    y:=y+yIncre;
    end;
    form1.Image1.Canvas.Brush.Style:=bsSolid;
    form1.Image1.Canvas.Pixels[Trunc(x),Trunc(y)]:=clred;
   
end;end.
运行后,writeln(x+0.5,y+0.5)提示有误,请问如何改正?多谢!!!不知算法如何修改,请多多指教,老师追得急,请多多帮忙,万分感谢!!!