antd tree 动态添加_一文了解Matlab如何制作动态图像
生活随笔
收集整理的這篇文章主要介紹了
antd tree 动态添加_一文了解Matlab如何制作动态图像
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
今天的推文,我們主要來介紹matlab中幾種繪制動態圖像的方法。首先,以之前介紹過的心形圖為例,來說明在matlab中如何將繪圖過程保存為gif動態圖像。
1. Matlab繪制GIF圖像
Step1:生成三維心形線坐標,三維空間下的心形線方程為:為了求解滿足該方程所有點坐標,首先定義了在xyz坐標軸上[-3,3]范圍內分別取101個點,用meshgrid得到101*101*101的三維網格點數據,計算每個網格點上函數的取值val,所有val為0的點即為心形線坐標點。Step2:在YOZ平行平面上繪制心形線,令X取定值,提取該平面上所有val取值為0的網格點(Y,Z)坐標,繪制心形線。在這里,提取val為0的點,通過提取等值線來實現,(Y,Z)=contourc(val(:,X,:),[0,0]),具體這部分matlab代碼為:for X = 35:67 %提取不同X取值下,與YOZ平行的平面上,f(y,z)取值 plane = reshape(val(:,X,:),101,101); %提取val為0的等值線,即滿足f(y,z)=0的坐標點 c_data = contourc(plane,[0,0]); x_data = X*ones(1,c_data(2,1)); %繪制在YOZ平行平面上的心形線 plot3(x_data,c_data(2,2:end),c_data(1,2:end),'r'); axis([30,80,30,80,30,80])axis offEndStep3:將圖像保存為gif文件,在matlab可以使用imwrite將圖像保存為gif,但需要將圖像數據保存為索引圖像。其中,保存第一張圖像時,需要創建gif文件,之后的圖像全部采用append的方式進行添加即可。保存gif文件的基本框架為:pic_index = 1;%記錄圖像編號for i = 1:end plot(data(i)); %抓取當前的figure,保存為rgb圖像后,再轉化為索引圖像 [A,map] = rgb2ind(frame2im(getframe),256); if pic_index == 1 imwrite(A,map,'test.gif','gif','Loopcount',inf,'DelayTime',0.2); else imwrite(A,map,'test.gif','gif','WriteMode','append','DelayTime',0.2); end pic_index = pic_index + 1;end其中,getframe是為了抓取當前繪制的圖像,frame2im函數將當前圖形保存為rgb圖像,rgb2ind函數將rgb圖像保存為索引圖像。所謂索引圖像是指一個數據矩陣A,一個顏色映像矩陣Map。其中Map是一個包含三列、若干行的數據陣列,其中每個元素的值均為[0, 1]之間的雙精度浮點型數據。Map矩陣的每一行分別表示紅色、綠色和藍色的顏色值。在MATLAB中,索引圖像是從像素值到顏色映射表值的“直接映射”。像素顏色由數據矩陣X作為索引指向矩陣Map進行索引,例如,值1指向矩陣Map中的第一行,值2指向第二行,以此類推。索引圖像的使用解決了圖像數據矩陣消耗內存過大的問題,rgb圖像需要一個三維數據矩陣才可以表示,索引圖像只需要一維數據矩陣和一個map就可以表示了。Setp4:同理,繪制XOY平行平面和XOZ平面的心形線,并繼續保存到gif文件中即可。完整代碼在公眾號后臺回復“動態心形線”即可獲取。2. Matlab創建動畫線條
我們在繪制動態圖像的目的一般是為了展示圖像的繪制過程,或者是為了在串行獲取數據時,實時展示圖像。為了實現實時繪圖的動畫,我們需要借助于matlab中的animatedline函數(注意:這是matlab在2014a版本之后才才更新的一個函數,2014a包括2014a之前版本的matlab都不能實現這個功能)。an?= animatedline 創建一根沒有任何數據的動畫線條并將其添加到當前坐標區中;
an?= animatedline(x,y)?創建一根包含由 x 和 y 定義的初始數據點的動畫線條;
an?= animatedline(x,y,z)?創建一根包含由 x、y 和 z 定義的初始數據點的三維動畫線條;
an?= animatedline(___,Name,Value)?使用一個或多個名稱-值對組參數指定動畫線條屬性。例如,'Color','r'?將線條顏色設置為紅色。
addpoints(an,x,y) 向動畫線條an中,添加二維點;
addpoints(an,x,y,z) 向動畫線條an中,添加三維點。
3. Matlab動畫循環播放
Movie函數可以實現電影動畫,一次運行結果可以保存起來進行多次播放,同時可以生成avi視頻文件,獨立于matlab進行使用。在進行movie函數創建動畫之前,需要用moviein函數保存繪制的圖形數據,創建一個足夠大的矩陣,使之能夠容納基于當前繪制的圖形(此處稱為幀)。當創建了一系列的動畫幀后,可以利用movie函數按照指定的速度和次數運行該電影動畫。movie函數的調用格式為:movie(M)?將矩陣M中的動畫幀播放一次;
movie(M,n)?將矩陣M中的動畫幀播放n次;
movie(M,n,fps)?將矩陣M中的動畫幀以每秒fps幀的速度播放n次。
總結
以上是生活随笔為你收集整理的antd tree 动态添加_一文了解Matlab如何制作动态图像的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: winxp升级win7教程_WinXP桌
- 下一篇: python concat函数 多张表_