MATLAB 3次元アニメーションの簡単なやつ メモ
MATLABで3次元グラフのアニメーション
描画フレームを保存するやり方なのでメモリが気になる
加えて螺旋を描くが,軌跡を残すためデータも保存しているのでさらに窮屈
参考:
グラフィックスでアニメーションを行うことはできますか?
http://www.mathworks.co.jp/support/solutions/ja/data/1-9HNJJB/index.html?product=SL&solution=1-9HNJJB
フレームを行列を割り当てするときに使うmovieinについて
http://infoshako.sk.tsukuba.ac.jp/ShakoDoc/MATLAB5/jhelp/techdoc/ref/moviein.html
ファイル:anime.m
%% アニメーション
clear
clc;
T=4;
DIV = 100; %シミュレーション精度
t=0;
x=zeros(DIV*T+1,1);
y=zeros(DIV*T+1,1);
z=zeros(DIV*T+1,1);
F=moviein(DIV*T+1);
%%初期プロット
x(1,1)=cos(2*pi*t/T);
y(1,1)=sin(2*pi*t/T);
z(1,1)=t;
plot3(x, y, z, 'k');
axis equal % 軸範囲をデータ範囲に設定
axis([-1 1 -1 1 0 T]) % 軸の範囲
% 新しいプロットの時、
% 軸設定を保持したまま前のグラフィックスオブジェクトを消去
set(gca,'nextplot','replacechildren');
for i=1:1:DIV*T+1
%螺旋を描く
x(i,1)=cos(2*pi*t/T);
y(i,1)=sin(2*pi*t/T);
z(i,1)=t;
plot3(x(1:i,1), y(1:i,1), z(1:i,1), 'k') % 現在までのグラフを描画
F(i) = getframe; % フレームの取得
t = t+1/DIV;%0:1/DIV:4
end
movie(F, 2); %ムービーフレームをN回再生