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

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

Réponse acceptée

Naoya
Naoya le 17 Juin 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)

Plus de réponses (0)

Catégories

En savoir plus sur MATLAB Report Generator dans Help Center et File Exchange

Community Treasure Hunt

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

Start Hunting!