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

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

採用された回答

Naoya
Naoya 2020 年 6 月 17 日
動画像ファイルの作成と 動画像をパワーポイントに張り付ける 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)

その他の回答 (0 件)

カテゴリ

Help Center および File ExchangeMATLAB Report Generator についてさらに検索

Community Treasure Hunt

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

Start Hunting!