星期五, 11月 03, 2006

主函數與次函數的應用:畫圓

畫圓的函數檔
以主函數與次函數構成

function drawcircles(r) % 主函數
% Draw circles with radii of r.
global MAXR;
n=length(r);
MAXR=max(r);
hold on;
for i=1:n,
[X,Y]=circ(r(i));
plot(X,Y);
end
hold off;
axis equal;
end

function [x,y]=circ(rr)%次函數
% Calculate the points of a circle.
[xx,yy]=randxy;
theta=linspace(0,2*pi,60);
x=xx+rr*cos(theta);
y=yy+rr*sin(theta);
end

function [xx,yy]=randxy%次函數
global MAXR
% locate the position of the center.
xx=rand*MAXR;
yy=rand*MAXR;
end


註1:執行時在command window中輸入
>>drawcircles(m:n)
即可畫出圖形
再輸入
>>hold off
>>figure(2)
>>drawcircles(m:n)
則會在另一個視窗中(figure2)畫出新圖形
因為程式中以隨機出現圓心位置和半徑,因此每次畫出來的圖都不一樣
註2: 在指令中加入rand('state',0)宣告,則每次畫出來的圖都會一樣

沒有留言: