系统提示找不到符号函数Sign();要uses Math;加入数据函数库。
// Bresenham算法生成坐标点
procedure Bresenhamline(x0, y0, x1, y1: integer);
var
x, y, dx, dy, s1, s2, d, e, temp, i: integer;
begin
x := x0;
y := y0;
dx := abs(x1 - x0);
dy := abs(y1 - y0);
s1 := Sign(x1 - x0);
s2 := Sign(y1 - y0);
if dy > dx then
begin
temp := dx;
dx := dy;
dy := temp;
d := 1;
end
else
begin
d := 0;
end;
e := 2 * dy - dx;
for i := 1 to dx do
begin
mousexy(x, y);
while e > 0 do
begin
if d = 1 then
begin
x := x + s1;
end
else
y := y + s2;
e := e - 2 * dx;
end;
if (d = 1) then
begin
y := y + s2;
end
else
x := x + s1;
e := e + 2 * dy;
end;
end;