【转】MATLAB如何制作动画(动态图形演示movie)
https://jingyan.baidu.com/article/49711c6199002dfa451b7c52.html
MATLAB如何制作動畫(動態圖形演示movie)
聽語音
- |
- 瀏覽:7100
- |
- 更新:2017-12-10 10:57
- |
- 標簽:MATLAB?動畫?
-
1
-
2
-
3
-
4
-
5
-
6
-
7
分步閱讀
百度經驗:jingyan.baidu.com
有時我們需要用MATLAB作出的圖片有動態的效果,比如下圖,我想讓這個圖案有動態的起伏的展示,或者某種仿真過程,我想動態地展示,怎么辦呢?
步驟閱讀
百度經驗:jingyan.baidu.com
工具/原料
-
MATLAB
百度經驗:jingyan.baidu.com
方法/步驟
1
首先,我這里舉例代碼如下:
x=-8:0.5:8;
[XX,YY]=meshgrid(x);
r=sqrt(XX.^2+YY.^2)+eps;
Z=sin(r)./r;
surf(Z);
生成了一幅靜態的surf圖片,XX,YY由meshgrid生成。
步驟閱讀
2
下面輸入
theAxes=axis;,
右側可以看到,theAxes=[0,40,0,40,-0.5,1],這是surf函數生成的,因為上面繪制的surf沒有使用surf(XX,YY,Z)所以坐標范圍不同,但是無論什么坐標范圍,這里都先取出來,存到一個變量中,后面備用。
步驟閱讀
3
fmat=moviein(20);
將fmat保存為一個moviein結構體,20表示動畫有20幀。
步驟閱讀
4
輸入:
for j=1:20;
surf(sin(2*pi*j/20)*Z,Z)
axis(theAxes)
fmat(:,j)=getframe;
end
這里就是分別畫每一幀的圖像,此處我們的surf是分20份來畫,坐標軸統一為之前的保存的坐標軸,把moviein結構體fmat的取為getframe,如圖。
步驟閱讀
5
movie(fmat,10);就是動畫放10遍。
步驟閱讀
6
全代碼如下:
x=-8:0.5:8;
[XX,YY]=meshgrid(x);
r=sqrt(XX.^2+YY.^2)+eps;
Z=sin(r)./r;
surf(Z);
theAxes=axis;
fmat=moviein(20);
for j=1:20;
surf(sin(2*pi*j/20)*Z,Z)
axis(theAxes)
fmat(:,j)=getframe;
end
movie(fmat,10)
步驟閱讀
END
總結
以上是生活随笔為你收集整理的【转】MATLAB如何制作动画(动态图形演示movie)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 精选| 2021年5月R新包推荐(第54
- 下一篇: 绕固定坐标轴旋转与绕自身坐标轴旋转一致性