matlab如何变化为动态图,MATLAB绘制圆变形动态图

满意答案

dcebd7a0de6265b6ccae5ead692f1eab.png

徐鹏谢雅杰

2014.05.23

dcebd7a0de6265b6ccae5ead692f1eab.png

采纳率:52%    等级:8

已帮助:712人

function h=circle(r,x0,y0,C,Nb)

% CIRCLE adds circles to the current plot

% %

% r 圆之半径,可为列矩阵,代表可同时绘制许多同心或同性质的圆。

%

% -x0,y0 圆心之座标,可为矩阵,代表可同时绘制许多不同圆心位置之圆。

%

% -C 圆之颜色,不说明时,由指令依序指定,亦可作向量指定。

%

% -Nb 绘圆时所用之点数,可用向量,若不指定,则以300点为预设值。

%

% Check the number of input arguments

switch nargin

case 0

r=[];x0=[];y0=[];C=[];Nb=[];

case 1

x0=[];y0=[];C=[];Nb=[];

case 2

y0=zeros(1,length(x0));C=[];Nb=[];

case 3

C=[];Nb=[];

case 4

Nb=[];

end

if length(x0)~=length(y0),

if length(y0)==1,

y0=ones(1,length(x0))*y0;

elseif length(x0)==1,

x0=ones(1,length(y0))*x0;

else

error('The lengths of x0 and y0 must be identical');

end;

end;

% set up the default values

if isempty(r),r=1;end;

if isempty(x0),x0=0;end;

if isempty(y0),y0=0;end;

if isempty(Nb),Nb=300;end;

if isempty(C),C=get(gca,'colororder');end;

if isstr(C),C=C(:);end;

% work on the variable sizes

x0=x0(:);

y0=y0(:);

r=r(:);

Nb=Nb(:);

% how many rings are plottet

if length(r)~=length(x0)

maxk=length(r)*length(x0);

else

maxk=length(r);

end;

route=0;

if length(x0)==1, route=1; end

if length(r)==1, route=2; end

if length(x0)==length(r), route=3; end

% drawing loop

for k=1:maxk

switch route

case 1

xpos=x0;

ypos=y0;

rad=r(k);

case 2

xpos=x0(k);

ypos=y0(k);

rad=r;

case 3

xpos=x0(k);

ypos=y0(k);

rad=r(k);

otherwise

rad=r(fix((k-1)/size(x0,1))+1);

xpos=x0(rem(k-1,size(x0,1))+1);

ypos=y0(rem(k-1,size(y0,1))+1);

end; % for switch

theta=linspace(0,2*pi,Nb(rem(k-1,size(Nb,1))+1,:)+1);

h(k)=line(rad*cos(theta)+xpos,rad*sin(theta)+ypos);

set(h(k),'color',C(rem(k-1,size(C,1))+1,:));

end;

%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%

前面是是圆的函数

下面的主函数(把它放在运行窗口或者另外建一个文件也行)

r=[1 2 3 4 4 5 6]; %设置半径

x0=1; %坐标X

y0=1; %坐标Y

for i=1:length(r)

hold on

circle(r(i),x0,y0);%后面的颜色可以不设置

pause(1) %设置时间,例子是1s.

end

hold off

10分享举报

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值