matlab 画m,Matlab画直线(Bresenhamline.m)
【實例簡介】
利用bresesnham算法畫直線
【實例截圖】
【核心代碼】
h=256;
w=256;
img=zeros(h,w);
x1=1;
x2=256;
y1=1;
y2=180;
img=BresenhamDraw(img,x1,y1,x2,y2);
figure(1);
imshow(img,[]);
function img=BresenhamDraw(img,x1,y1,x2,y2)
if x1~=x2
k=(y2-y1)/(x2-x1);
flag=0;? ? ? ? ?%斜率判斷標記位
if abs(k)>1? ? ?%如果斜率大于1,則把x和y方向置換
flag=1;
k=1/k;
[y1 ,x1]=Swap(x1,y1);
[y2 ,x2]=Swap(x2,y2);
end
%計算開始畫線的像素
mi=min(x1,x2);
ma=max(x1,x2);
if mi==x1
s=y1;
else
s=y2;
end
d=0;
for i=mi:ma
if flag==0
img(s,i)=1;
else
img(i,s)=1;
end
d=d k;
%自變量i每加1,根據d是否超過一個像素來確定因變量s增加或減少
if d>=1
d=d-1;
s=s 1;
elseif d<=-1
d=d 1;
s=s-1;
end
end
end
end
function [y ,x]=Swap(x1,y1)
x=y1;
y=x1;
end
總結
以上是生活随笔為你收集整理的matlab 画m,Matlab画直线(Bresenhamline.m)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: php 标点符号,php 过滤英文标点符
- 下一篇: matlab语音去除白噪声_matlab