アニメーションの途中​でグラフィックを回転​させるにはどうすれば​よいですか?

4 views (last 30 days)
洸気
洸気 on 25 Aug 2023
Answered: Hiro Yoshino on 25 Aug 2023
こんにちは。
私は線形倒立振り子のログファイルからアニメーションを再生するプログラムを作成しております。
ログファイルは/dataフォルダに置かれたcomref.csv, zmpref.csvです。
以下、私が作成したプログラムです。
%======================================================================%
% 環境設定
time = 14; % アニメーションの描画最大時刻
dt = 0.001; % 更新頻度
T = (0:dt:time)'; % 時刻列
LOOP = size(T); % アニメーションのループ回数
t = 0; % 初期時刻
cnt = 1; % カウント変数
% アニメーション
for i = 1:LOOP(1)
if rem(cnt, 50) == 0
clf
% 計画重心軌道
COMREF = readmatrix('/data/comref.csv');
fig_comref = plot3(COMREF(i,1), COMREF(i,2), COMREF(i,3), 'o');
setfigcolor(fig_comref, 'r');
% 軸の設定
axis([-0.5 2.5 -0.5 1.5 0.0 1.0]);
zlim([0 1.0]);
xticks(-0.5:0.5:2.5);
yticks(-0.5:0.5:1.5);
zticks(0:0.1:1.0);
%axis square;
title('Dynamics analysis');
xlabel('x');
ylabel('y');
zlabel('z');
%h_axes = gca;
%h_axes.XAxis.FontSize = 15;
%h_axes.YAxis.FontSize = 15;
%h_axes.ZAxis.FontSize = 15;
grid on
hold on
% 計画ZMP
ZMPREF = readmatrix('/data/zmpref.csv');
szZMPREF = size(ZMPREF);
fig_zmpref = plot3(ZMPREF(i,1), ZMPREF(i,2), 0.0, '.');
setfigcolor(fig_zmpref, 'r');
% 計画重心と計画ZMPを結ぶ線
plot3([COMREF(i,1) ZMPREF(i,1)],[COMREF(i,2) ZMPREF(i,2)],[COMREF(i,3) 0.0],'Color','b');
drawnow
pause(dt*50);
end
cnt = cnt + 1;
t = t + dt;
end
hold off
%======================================================================%
本プログラム実行前の準備として、まず本プログラムのディレクトリ直下にdataフォルダを作成します。
そこへ添付したログファイルを置きます。
次に、本プログラムのディレクトリ直下に、添付したsetfigcolor.mファイルを置きます。
この状態で本プログラムのデバッグを実行すると、次のようなアニメーションが描かれるはずです。
本題に移りたいと思います。
私は、このアニメーションの再生中にグラフィックを回転させたり、拡大/縮小したりして
線形倒立振り子の様子をよく観察したいと思っております。
どのようにすればそのようなことが可能になるでしょうか。
回答して頂けると幸いです。

Answers (1)

Hiro Yoshino
Hiro Yoshino on 25 Aug 2023
rotate が使えるかも知れません。
また、
plot(randn(100,1));
h=zoom;
set(h,'Motion','horizontal','Enable','on');
zoom(5.0)
なども良いのでは?

Products


Release

R2020b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!