gif格式动画以其小巧受到大家的广泛欢迎,本贴以案例形式做一个总结。 作gif动画要用到getframe、frame2im、rgb2ind和imwrite函数,getframe函数用来抓取当前图形窗口中的图像,frame2im函数和rgb2ind函数用来将抓取的图像转为索引图像,imwrite函数用来将索引图像写入gif格式动画,需要注意的是imwrite函数不能将真彩图像写入gif格式动画。关于这些函数的具体用法,这里不再详述,请版友自行查阅帮助。下面只给出案例。 【例1】绕螺旋线运动的小球 效果图: filename = 'xiezhh.gif'; z = linspace(0, 10*pi, 100); %产生一个行向量 x = [20*sin(z),zeros(1,10)]; y = [20*cos(z),20*ones(1,10)]; z = [z,linspace(10*pi,0,10)]; plot3(x, y, z, 'r', 'linewidth', 2); %绘制螺旋线 hold on %图形保持 h = plot3(0,20,0, '.' , 'MarkerSize' ,40, 'EraseMode' , 'xor' ); xlabel('X'); ylabel('Y'); zlabel('Z'); %添加坐标轴标签 axis([-25 25 -25 25 0 40]); %设置坐标轴范围 view(-210,30); %设置视角 for i = 1:length(x) set(h, 'xdata' ,x(i), 'ydata' ,y(i), 'zdata' ,z(i)); drawnow; % 刷新屏幕 pause(0.05) f = getframe(gcf); imind = frame2im(f); [imind,cm] = rgb2ind(imind,256); if i == 1 imwrite(imind,cm,filename,'gif', 'Loopcount',inf,'DelayTime',0.1); else imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0.1); end end
|
|