資源簡介
用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
評論
共有 條評論