资源简介
用matlab编写的扫描线填充程序,可以实现多边形的填充。
代码片段和文件信息
function [ak]=Bresenhamline(x0y0x1y1)
% Bresenham方法画直线
dx=x1-x0;
dy=y1-y0;
d1=abs(2*dx);
d2=abs(2*dy);
x=x0;y=y0;
plot(xy‘*‘);
a=[x y];
k=1;
if(abs(dx)>=abs(dy))
p=-abs(dx);
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
if(dy>=0)y=y+1;end
if(dy<0)y=y-1;end
p=p-d1;
end
hold on;
a=[a;x y];k=k+1;
pause(0.01);
plot(xy‘*‘);
end
end
if(abs(dx) p=-abs(dy);
while abs(y)~=abs(y1)
if(dy>=0) y=y+1;end
if(dy<0) y=y-1;end
p=p+d1;
if p>0
if(dx>=0) x=x+1;end
if(dx<0) x=x-1;end
p=p-d2;
end
hold on;
a=[a;x y];k=k+1;
pause(0.01);
plot(xy‘*‘);
end
end
hold on;
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 656 2009-05-16 12:25 scan.m
文件 804 2009-05-16 12:23 Bresenhamline.m
----------- --------- ---------- ----- ----
1460 2
评论
共有 条评论