分享

matlab动画

 磨菜刀的老花匠 2018-08-20
​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

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多