huright 发表于 2006-5-27 10:22

[原创]小球沿空间螺旋线运动的动画

%function f=anim_zzy1(K,ki)
K=2;
ki=450;
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=;y=;z=;
plot3(x,y,z,'b'),        axis off       
h=line('Color',,'Marker','.','MarkerSize',40,'EraseMode','xor');
n=length(x);i=1;j=1;
while 1                                                               
set(h,'xdata',x(i),'ydata',y(i),'zdata',z(i));
   drawnow;                                                                                                %         <21>
   pause(0.0005)                                                                                        %        <22>
   i=i+1;
   if nargin==2 & nargout==1       
      if(i==ki&j==1);f=getframe(gcf);end                                %         <25>
   end
   if i>n
      i=1;j=j+1;
      if j>K;break;end
   end
end

ant008 发表于 2006-5-29 13:33

嗯,是个不错的例子!

fandalei 发表于 2006-5-31 11:19

请问楼主是什么专业的,搞什么方向的东西

huright 发表于 2006-5-31 19:00

机械专业,方向待定

yingfei 发表于 2006-6-1 22:16

<P>怎么没有看见程序啊?</P>

huright 发表于 2006-6-2 14:31

没看见?睁大你的双眼!!!!11

andy_3656 发表于 2006-7-6 22:44

这个实例很好啊!
动画效果好

wem 发表于 2006-8-28 20:19

怎么看不到动呢?是静态的?

tiantaihei 发表于 2006-9-5 17:01

配写中文说明对初学者就更好了(看不太懂拉)

pengjing 发表于 2006-10-24 20:18

nihao

请问你是什么学校的呢?

pengjing 发表于 2006-10-24 20:19

你好

我可以把你的程序弄成我的实验报告吗?快回答

suffer 发表于 2006-10-26 18:17

原帖由 wem 于 2006-8-28 20:19 发表


动态的

suffer 发表于 2006-10-26 18:17

原帖由 tiantaihei 于 2006-9-5 17:01 发表
配写中文说明对初学者就更好了(看不太懂拉)

这里的命令都不复杂,自己慢慢看,没有太大的难度

hgdgqi 发表于 2006-11-5 14:56

顶!

geoer 发表于 2007-1-18 22:16

看MATLAB书看烦了的时候,不妨看看仿真动画,自己做几个也不错,就当娱乐放松吧。对于新手来说,也不失为一种好的学习方法。废话少说,刚才花几分钟看了看这个M文件,简单写了几句注释,大家多指正。
      
       function f=anim_zzy1(K,ki)
%本动画演示了红色小球沿一条封闭螺线运动的引导线动画,
%K表示红色小球沿着路径运动的总圈数,ki代表小球运动到某一刻(取值范围1-1034)
if nargin==0      %没有参数输入时,给出默认参数值         
K=2;
ki=450;
end
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=;y=;z=;
plot3(x,y,z,'b');                                 
axis on;   
grid on;            %以上语句绘制动画中的封闭曲线
h=line('Color',,'Marker','.','MarkerSize',40,'EraseMode','xor');%用线对象绘制红色小球,异或檫除模式究竟怎么个异或法,还没理解?
n=length(x);i=1;j=1;%n为1034,其中x1,1001个元素,x2、x3、x4分别为11个元素
while 1                                                               
set(h,'xdata',x(i),'ydata',y(i),'zdata',z(i)); %将曲线上的坐标设为小球的位置
   drawnow;                                    %刷新图形窗口                                                         
   pause(0.0005)                                 %控制播放速度                                                      
   i=i+1;
   if nargin==2 & nargout==1                     %当输入变量为2个,输出变量为1个时,执行下面的操作
      if((i-1)==ki&j==1);f=getframe(gcf);      %如果小球处于第一圈第ki个点时,得到此时的画面,赋值给f
      end                     
   end                                          
   if i>n                                        %这里可以看出i的取值范围是1-1035,可见ki的取值范围是1-1034
      i=1;j=j+1;                                 %当小球跑完1034个点后,让小球再回到第一个点,并记录现在的圈数
      if j>K;break;end                           %跑完k圈后,跳出死循环。
   end
end

[ 本帖最后由 geoer 于 2007-1-19 09:28 编辑 ]
页: [1] 2
查看完整版本: [原创]小球沿空间螺旋线运动的动画