- 在线时间
- 822 小时
- 最后登录
- 2023-9-22
- 注册时间
- 2011-12-24
- 听众数
- 50
- 收听数
- 0
- 能力
- 720 分
- 体力
- 38036 点
- 威望
- 80 点
- 阅读权限
- 255
- 积分
- 28279
- 相册
- 1
- 日志
- 0
- 记录
- 10
- 帖子
- 1616
- 主题
- 142
- 精华
- 83
- 分享
- 0
- 好友
- 259
升级   0% TA的每日心情 | 开心 2022-8-28 18:40 |
---|
签到天数: 1187 天 [LV.10]以坛为家III 网络挑战赛参赛者 国际赛参赛者
 群组: Matlab讨论组 群组: MATLAB技术交流 群组: 西南交通大学数学建模 群组: 学术交流A 群组: 数学建模 |
- function f=anim_ball(K,ki)
- %
- %演示红色小球沿一条封闭旋螺线运动的实时动画
- % 仅演示实时动画的调用格式为 anim_ball(K)
- % 既演示实时动画又拍摄照片的调用格式为 f=anim_ball(K,ki)
- % K 红球运动的循环数(不小于 1 )
- % ki 指定拍摄照片的瞬间,取 1 到 1034 间的任意整数
- % f 存储拍摄的照片数据,可用 image(f.cdata) 观察照片
- % 产生封闭的运动轨线
- %
- %
- %by dynamic
- %all rights reserved by http://www.4math.cn
- %2007.10.26
- %
- t1=(0:1000)/1000*10*pi;
- x1=cos(t1);y1=sin(t1);z1=-t1;
- t2=(0:10)/10;
- x2=x1(end)*(1-t2);y2=y1(end)*(1-t2);z2=z1(end)*ones(size(x2));
- t3=t2;
- z3=(1-t3)*z1(end);x3=zeros(size(z3));y3=x3;
- t4=t2;
- x4=t4;y4=zeros(size(x4));z4=y4;
- x=[x1 x2 x3 x4];y=[y1 y2 y3 y4];z=[z1 z2 z3 z4];
- h=figure('numbertitle','off','name','擦除动画演示(运动的小球)——Matlabsky')
- plot3(x,y,z,'b')
- axis off
- %绘制红点
- %擦除模式设为xor
- h=line('Color',[1 0 0],'Marker','.','MarkerSize',40,'EraseMode','xor');
- n=length(x);
- i=1;j=1;
- %循环改变坐标,表现为小球运动
- while 1
- if ~ishandle(h),return,end
- set(h,'xdata',x(i),'ydata',y(i),'zdata',z(i));
- drawnow;
- pause(0.0005) %这里设置小球运动速度
- i=i+1;
- if nargin==2 & nargout==1
- if(i==ki&j==1);f=getframe(gcf);end %获取指定的帧,保存到f中
- end
- if i>n
- %判断是否运行了一周,是将i设置为1,并将运行周数j加1
- i=1;j=j+1;
- %判断是否到指定的运行周数,是,退出
- if j>K;break;end
- end
- end
复制代码
|
zan
|