创建动画gif时,停止Matlab调整曲面大小
创建动画gif时,停止Matlab调整曲面大小,matlab,animation,image-processing,plot,animated-gif,Matlab,Animation,Image Processing,Plot,Animated Gif,我想使用Matlab2013(Linux 64位)创建一个360度旋转曲面图。我可以使用下面的代码片段创建一个动画gif,但Matlab会在整个动画的某些帧中不断调整曲面的大小(示例请参见[1],第56-59帧)。知道如何防止Matlab调整绘图面的大小吗? 提前谢谢你的建议 function createVideo( FigureHandler, filename ) grid on set(gca,'ZTickLabel',[]); set(gca,'YTickLabel',[]); set
我想使用Matlab2013(Linux 64位)创建一个360度旋转曲面图。我可以使用下面的代码片段创建一个动画gif,但Matlab会在整个动画的某些帧中不断调整曲面的大小(示例请参见[1],第56-59帧)。知道如何防止Matlab调整绘图面的大小吗?
提前谢谢你的建议
function createVideo( FigureHandler, filename )
grid on
set(gca,'ZTickLabel',[]);
set(gca,'YTickLabel',[]);
set(gca,'XTickLabel',[]);
for n = 1:360
view(n,66)
zoom off
drawnow
frame = getframe(FigureHandler);
im = frame2im(frame);
[imind,cm] = rgb2ind(im,256);
if n == 1;
imwrite(imind,cm,filename,'gif', 'Loopcount',inf);
else
imwrite(imind,cm,filename,'gif','WriteMode','append','DelayTime',0);
end
end
end
[1]
该问题是由于轴限制随视图的变化而引起的,可以通过手动设置轴限制或将轴属性
'XLimMode'
、'YLimMode'
和'ZLimMode'
设置为'manual'
来防止
但是,其他属性(例如DataAspectRatio、PlotBoxAspectRatio等)会导致图形在旋转时放大和缩小
但是,Matlab提供了vis3d
轴模式来为您设置所有这些您只需添加以下内容:
axis('vis3d')
应在设置记号等后放置。。。但是在for循环之外您是否可以发布视图代码(n,66)或显示大小调整的简化版本?它是否依赖于imwrite,或者您是否也会在屏幕上看到它而不创建动画gif,而只是通过查看matlab图形?
view
随matlab提供(它是graph3d工具箱的一部分)