1. Bresenham 直线生成算法
Matlab 程序代码:
function a=Bresenhamline(x0,y0,x1,y1)
% Bresenham·½·¨»Ö±Ïß
dx=x1-x0;
dy=y1-y0;
p=-abs(dx);
d1=abs(2*dx);d2=abs(2*dy);
x=x0;y=y0;
plot(x,y,'*');
a=[x y p p+d2];
if(abs(dx)>=abs(dy))
while abs(x)<abs(x1)
if(dx>=0) x=x+1;end
if(dx<0) x=x-1;end
p=p+d2;
if p>0
y=y+1;
p=p-d1;
end
hold on;
a=[a;x y p p+d2];
plot(x,y,'*');
end
end
if(abs(dx)<abs(dy))
while abs(x)<abs(x1)
if(dy>=0) y=y+1;end
if(dy<0) y=y-1;end
p=p+d1;
if p>0
y=y+1;
p=p-d2;
end
hold on;
a=[a;x y p p+d1];
plot(x,y,'*');
end
end
hold on;
t=x0:0.001:x1;