[原创]小球沿空间螺旋线运动的动画
%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 嗯,是个不错的例子! 请问楼主是什么专业的,搞什么方向的东西 机械专业,方向待定 <P>怎么没有看见程序啊?</P> 没看见?睁大你的双眼!!!!11 这个实例很好啊!
动画效果好
怎么看不到动呢?是静态的?
配写中文说明对初学者就更好了(看不太懂拉)nihao
请问你是什么学校的呢?你好
我可以把你的程序弄成我的实验报告吗?快回答 原帖由 wem 于 2006-8-28 20:19 发表动态的 原帖由 tiantaihei 于 2006-9-5 17:01 发表
配写中文说明对初学者就更好了(看不太懂拉)
这里的命令都不复杂,自己慢慢看,没有太大的难度 顶! 看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