三次元グラフのZ軸を中心に回転させたい

21 Ansichten (letzte 30 Tage)
Takanori Kawashima
Takanori Kawashima am 16 Jun. 2020
Beantwortet: Naoya am 17 Jun. 2020
三次元プロットをパワーポイント上で動かして説明を行いたいと考えております。
三次元プロットいずれかの軸を回転させたムービーを作成し、それを添付する形になるのだと思います。
軸を回転させ、パワーポイントに使用する流れが説明されているサイト、資料はございますでしょうか?
お忙しいところ恐縮ですがどうぞよろしくお願いいたします。

Akzeptierte Antwort

Naoya
Naoya am 17 Jun. 2020
動画像ファイルの作成と 動画像をパワーポイントに張り付ける 2点については以下例となります。
〇 動画像ファイルの作成
動画像ファイルの保存については、 VideoWriter 関数を使います。
例えば、figファイルから 方位角を 1 度~ 360度まで 3度刻みでフレームを保存する場合は、以下の様な形で保存します。
h = openfig('All vessel structure (cross point).fig');
% 動画ファイルの保存
v = VideoWriter('newfile.mp4','MPEG-4');
open(v);
for n = 1:3:360
view([n, 30]);
drawnow; % 描画更新(※)
frame = getframe(h);
writeVideo(v,frame);
end
close(v);
※ drawnow コマンドを追加しないと、各ループにおいて描画が更新されない可能性もありますので、確実に更新されるように挿入します。
〇 動画像ファイルをパワーポイントに張り付ける機能
パワーポイントに動画を挿入する直接的な機能はMATLABでは提供されていませんが、COM経由でパワーポイントのオブジェクトモデルを操作すれば可能です。COMのインターフェースは、actxserver にて使用出来ます。
MATLABではCOMのインターフェースを提供しているのみとなります。
(マイクロソフト製品側で提供される動画像を埋め込むAPIについては AddMediaObject2 メソッドになると思われます。)
あくまでも一例ですが、COMインタフェース経由で、上で作成した newfile.mp4 を新規パワーポイントに張り付ける例となります。
% COMでPowerpointハンドル取得
h=actxserver('powerpoint.application');
% 表示
h.Visible=1;
% プレゼンテーションの追加
Presentation = h.Presentation.Add;
% スライドの追加
blankSlide = Presentation.SlideMaster.CustomLayouts.Item(1);
Slide1 = Presentation.Slides.AddSlide(1,blankSlide);
% 動画ファイルの追加
file_path=which('newfile.mp4');
% パワーポイントへの埋め込み
Slide1.Shapes.AddMediaObject2(file_path);
% プレゼンテーションを保存して、終了
Presentation.SaveAs([pwd,'\test.pptx']);
h.Quit;
delete(h)

Weitere Antworten (0)

Kategorien

Mehr zu MATLAB Report Generator finden Sie in Help Center und File Exchange

Community Treasure Hunt

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

Start Hunting!