導航:首頁 > 編程語言 > matlab動畫編程代碼

matlab動畫編程代碼

發布時間:2022-11-27 20:10:51

㈠ 求用matlab製作簡單動畫實例

具體製作方法如下:

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生成。

㈡ matlab怎麼編寫駐波的動畫顯示代碼

%function f=prob5_11(K,ki)
%prob5_10函數產生駐波動畫,K控制駐波動畫動態變化的次數,ki控制曲線動態變化的快慢
nargin=0
clf
t=0;k=0;
x=(0:100)/100*3*pi;
n=length(x);
x0=[0 pi 2*pi 3*pi];
y0=zeros(1,4);
y=sin(t).*sin(x);
h=line(x,y,'LineWidth',4,'Color',[0 0 1]);
h1=line(x0,y0,'LineWidth',4,'Marker', '.','MarkerSize',50,'Color',[1 0 0]);
axis off;
% set(h,'erasemode','background') %h是需要執行動畫圖像的句柄,一般都是由line或者plot創建
if nargin==0
K=1;ki=1;
elseif nargin==1
ki=1;
end
while 1
t=t+0.5;
y=sin(t).*sin(x);
axis([ 0 10 -1.1 1.1])
set(h,'xdata',x,'ydata',y) %更新圖像的坐標數據
drawnow %刷新屏幕
set(h1,'xdata',x0,'ydata',y0,'erasemode','background')%更新圖像的坐標數據
drawnow %刷新屏幕
if round(t/48)==K
break
end
pause(0.1*ki)
end
f=getframe(gcf)

㈢ matlab動畫代碼的講解 謝謝啦

h1=line( 'Color' ,[1 0 0], 'Marker' , '.' , 'MarkerSize' ,36, 'EraseMode' , 'xor' );%不懂這行

color 有效值為colorspec 100 RGB的紅色
colorspec表:
RGB 簡稱
[110] y_yellow
[101] m_magenta
[011] c_cyan
[100] r_red
[010] g_green
[001] b_blue
[111] w_white
[000] k_black

Marker: 有效值為字元,決定Line對象的記號類型,有+,o,*,.,x,s,d,等
Markersize:有效值為純量,單位為 點,Marker的大小。

EraseMode的幾種擦除方式的意義,我今天查找了一下,大概的意思是這樣的:
1)normal方式:
使用該選項後,重畫整個顯示區,這種模式產生的圖像最准確,但較慢;
2)background方式
將舊對象的顏色變成背景色,從而達到擦除的目的。這種模式將損壞被擦除對象下面的對象;
3)xor方式
對象的繪制何擦除由該對象顏色與屏幕顏色的異或而定。只畫與屏幕顏色不一致的新對象點,只擦除與屏幕顏色不一致的原對象點。該方式不損害被擦除對象下面的其他圖像;
4)none方式
不做任何擦除

set(h1,'xdata',x(k),'ydata',y(k))%還有這行
Xdata,Ydata,Zdata: 有效值為坐標數組,指定產生線條的數據點,若為2D環境則Xdata、Ydata需要有相同數目的數據,而Zdata為空矩陣

pause(.1005);%這個函數是用來調整動畫速度的嗎
暫停的時間,或者說上一個圖像到下一個畫面之間的間隔時間
drawnow;%為什麼這行去掉也可以
drawnow估計用於刷新屏幕的

㈣ matlab編程 求代碼

1.打開matlab2012b,新建new script.輸入如下代碼:a=input('a=?');b=input('b=?');c=input('c=?');d=b*b-4*a*c;x=[(-b+sqrt(d))/(2*a),(-b-sqrt(d))/(2*a)];disp(['x1=',num2str(x(1)),',x2=',num2str(x(2))]);
2.點擊「run」運行.選擇好保存的文件名和保存目錄.這里取文件名為:yiyuanercifangchengqiujie.運行結果如下:依次輸入a、b、c的值>> yiyuanercifangchengqiujiea=?6b=?7c=?9x1=-0.58333+1.0769i,x2=-0.58333-1.0769i可以連續運行,也就是說可以接著輸入下一組a、b、c的值.
3.附例1:用 solve方法來求一元一次方程組的根.

㈤ 怎樣用Matlab做動畫演示

1利用moviein命令對內存進行初始化,創建一個最夠大的矩陣,使其能夠容納基於當前坐標軸大小的一系列制定的圖形(幀);moviein(n)可以創建一個足夠大的n列矩陣。

2利用getframe命令生成每個幀。

3利用movie命令按照指定的速度和次數運行該動畫,movie(M,n)可以播放由矩陣M所定義的畫面n次,默認n時只播放一次。

演示山峰函數繞Z軸旋轉的動畫。

>> [X,Y,Z]=peaks(30);
>> surf(X,Y,Z)
>> axis([-3,3,-3,3,-10,10])
>> axis off
>> shading interp
>> colormap(hot)
>> M=moviein(20); %建立一個20列的大矩陣
>> for i=1:20
view(-37.5+24*(i-1),30) %改變視點
M(:,i)=getframe; %將圖形保存到M矩陣
end
>> movie(M,2) %播放畫面2次

㈥ matlab如何製作質點運動軌跡的動畫

MATLAB有很多功能,可以繪制運動軌跡,那麼如何用matlab畫運動軌跡,操作方法如下。

1、首先打開電腦上的MATLAB軟體,如下圖所示。

㈦ 如何用matlab來繪制動畫

下面是製作gif圖的程序,供你參考。

主要的命令就是getframe 和 imwrite。

%適用於在一幅圖中表現給圖過程,即圖形的增長過程

%主要用來繪制三維的歐拉公式
clc;clear;clf;closeall;

%獲得數據
tmax=4*pi;
t=0:0.01:tmax;
tmp=exp(1i*t);
x=real(tmp);
y=imag(tmp);
[a,b]=size(x);
y1=zeros(a,b);
x1=zeros(a,b);

%確定首幅圖的樣式,並指定標題,坐標軸標題等樣式
plot3(x(1,1),t(1,1),y(1,1),'black');
holdon
plot3(x(1,1),t(1,1),y1(1,1),'blue');
plot3(x1(1,1),t(1,1),y(1,1),'r');
axis([-1,1,0,tmax,-1,1])
str=['$${e^{it}}=cost+isint$$',char(13,10)','createdbyLijunjie!'];
title({str},'Interpreter','latex')
xlabel('實軸');
ylabel('時間軸');
zlabel('虛軸');
gridon;
set(gcf,'Position',[0,0,600,600],'color','w');
set(gca,'ydir','reverse')%反轉坐標軸

%確保圖像在採集的過程中包括坐標軸及標題
ax=gca;
ax.Units='pixels';
pos=ax.Position;
ti=ax.TightInset;
rect=[-ti(1),-ti(2),pos(3)+ti(1)+ti(3),pos(4)+ti(2)+ti(4)];

%在指定的范圍內獲得圖像文件
frame=getframe(ax,rect);
im=frame2im(frame);

%創建gif文件,指定其樣式,寫入首幀圖像
k=1;
%用胞元存儲採集到的圖像,方便後面反轉圖像用
[I{k},map{k}]=rgb2ind(im,256);
imwrite(I{k},map{k,1},'mygif.gif','gif','Loopcount',Inf,'DelayTime',0.2);
k=k+1;

%畫圖並採集到gif中
steptmp=20;%每幅圖要畫的點數
i=steptmp;
whilei<(b-1)
x_1=x(1,(i-steptmp+1):i+1);
t_1=t(1,(i-steptmp+1):i+1);
y_1=y(1,(i-steptmp+1):i+1);
y1_1=y1(1,(i-steptmp+1):i+1);
x1_1=x1(1,(i-steptmp+1):i+1);
plot3(x_1,t_1,y_1,'black');
holdon
plot3(x_1,t_1,y1_1,'blue');
plot3(x1_1,t_1,y_1,'r');

%下面是製作gif的主要代碼,除了調節間隔時間外,一般不需要改動
ax=gca;
ax.Units='pixels';
pos=ax.Position;
ti=ax.TightInset;
rect=[-ti(1),-ti(2),pos(3)+ti(1)+ti(3),pos(4)+ti(2)+ti(4)];
frame=getframe(ax,rect);
im=frame2im(frame);
[I{k},map{k}]=rgb2ind(im,256);
%寫入模式為「追加」模式
imwrite(I{k},map{k},'mygif.gif','gif','WriteMode','append','DelayTime',0.1);
k=k+1;

i=i+steptmp;
end

%將圖像按相反的順序再寫入到gif中
fori=(k-1):-1:1
imwrite(I{i},map{i},'mygif.gif','gif','WriteMode','append','DelayTime',0.1);
end

下面是結果圖:

㈧ 怎樣用matlab做動畫

用matlab製作動畫的主要函數是getframe(捕捉軸或圖形作為電影幀),movie(播放錄制的電影幀)。

給你一個實例(勻強電場),以幫助你理解。

t=0:0.01:6*pi;

v0x=1;v0y=1;

a1=1;

y1=v0y*t+0.5*a1*t.*t;

x1=v0x*t;

for i=1:length(t)

plot(x1(1:i),y1(1:i))

axis([0,20,0,200])

grid on,hold on

plot(x1(i),y1(i),'r.','markersize',20)

title('勻強電場')

xlabel('x'),ylabel('y')

M(i)=getframe;

end

movie(M,1)

運行過程及結果

㈨ 求助matlab繪制動畫命令

%這個我剛好知道
使用drawnow命令,如下有個例子:

%擦除方式顯示小球運動

speed=4000;
x=linspace(0,2*pi,speed);
y=tan(sin(x))-sin(tan(x));
plot(x,y);
n=length(x);
line_handle=line('LineStyle','o','LineWidth',3,'MarkerSize',15,...
'EraseMode','normal','MarkerEdgeColor','k','MarkerFaceColor','r');
i=1;
while 1
set(line_handle,'xdata',x(i),'ydata',y(i));
drawnow
i=i+1;
if i>n
i=1;
end
end
%這段程序有個問題在於關閉會報錯,使用try語句即可解決
如果是錄制使用moviein指令
如下有個例子
%利用電影方式顯示動畫
[x,y,z]=peaks(30);%peaks用來測試三維畫圖
surf(x,y,z);
m=moviein(15);
axis off
colormap(cool)
shading interp%設置陰影效果
for i=1:15
view(-45+15*(i-1),30+10*(i-1))
m(:, i)=getframe;%抓取畫面值並載入到繪圖窗口的畫面矩陣中
end
movie(m,2)

㈩ 請問用MATLAB軟體,以動畫的形式作出單位圓x^2 +y^2 = 1的圖像的程序代碼是什麼

p=(0:0.003:2)*pi;
x=cos(p);
y=sin(p);
fort=1:length(p)
plot(x(t),y(t),'r-');
drawnow
holdon
gridon
axisequal
axis([-22-22]);
end

閱讀全文

與matlab動畫編程代碼相關的資料

熱點內容
軟體設計師跟程序員區別 瀏覽:581
哪個app能出售皮箱 瀏覽:20
格式工廠pdf 瀏覽:367
非對稱加密屬於哪一層 瀏覽:239
程序員病假暈倒 瀏覽:465
如何啟動帆軟內置伺服器 瀏覽:884
我的世界如何把命令方塊取出 瀏覽:2
單片機應用的場合 瀏覽:345
連接超時伺服器ip地址或埠配置錯誤 瀏覽:280
程序員常說的底層 瀏覽:716
伺服器cpu都是什麼封裝 瀏覽:708
壓縮文件解壓畫面 瀏覽:418
旭聊pdf 瀏覽:81
美女寫字聲音解壓 瀏覽:57
led燈單片機畢設 瀏覽:849
三星adb命令 瀏覽:24
表格如何加密最簡單的方法 瀏覽:186
direct判斷是文件夾 瀏覽:688
哪個app看建軍大業有彈幕 瀏覽:975
做引流app哪個靠譜 瀏覽:986