メインコンテンツ

このページは機械翻訳を使用して翻訳されました。最新版の英語を参照するには、ここをクリックします。

play

クラス: Aero.Animation
名前空間: Aero

位置/角度の時系列を指定して Aero.Animation オブジェクトをアニメーション化する

構文

play(h)

説明

play(h) は、アニメーション オブジェクト h に読み込まれたジオメトリを、Aero.Animation 'TimeScaling' プロパティで指定されたレート (実時間 1 秒あたりのアニメーション データの秒数) で現在の TimeseriesDataSource にアニメーション化します。アニメーションは、'FramesPerSecond' プロパティを使用して、1 秒あたり特定のフレーム数で作成されます。このメソッドが時系列データを使用する方法の詳細については、アルゴリズム を参照してください。

入力引数

すべて展開する

Aero.Animation オブジェクトとして指定された航空宇宙アニメーション オブジェクト。

すべて展開する

飛行データをシミュレートして記録します。データを使用してアニメーション オブジェクトを作成します。

h = Aero.Animation;

フレームの表示レートを制御します。

h.FramesPerSecond = 10;

アニメーション オブジェクトに時間スケーリング プロパティ TimeScaling を設定して、1 秒あたりのデータ数を指定します。

h.TimeScaling = 5;

FramesPerSecond プロパティと TimeScaling プロパティの組み合わせによって、シミュレーションの時間ステップが決まります。これらの設定により、時間ステップは約 0.5 秒になります。

アニメーション オブジェクトのボディを作成して読み込みます。

idx1 = createBody(h,'pa24-250_orange.ac','Ac3d');

シミュレートされた飛行軌道データ simdata を読み込みます。

load simdata;

本文の時系列データを設定します。

h.Bodies{1}.TimeSeriesSource = simdata;

アニメーション オブジェクトの図オブジェクトを作成します。

show(h);

{"String":"","Tex":[],"LaTex":[]}

録音プロパティを設定します。

h.VideoRecord = 'on';
h.VideoQuality = 50;
h.VideoCompression = 'Motion JPEG AVI'
h = 
  Animation with properties:

                      Name: ''
                    Figure: [1×1 Figure]
    FigureCustomizationFcn: []
                    Bodies: {[1×1 Aero.Body]}
                    Camera: [1×1 Aero.Camera]
                  TCurrent: 0
               VideoRecord: 'on'
             VideoFileName: 'temp'
          VideoCompression: 'Motion JPEG AVI'
              VideoQuality: 50
               VideoTStart: NaN
               VideoTFinal: NaN
               TimeScaling: 5
           FramesPerSecond: 10
                    TStart: NaN
                    TFinal: NaN

h.VideoFilename = 'astMotion_JPEG';

アニメーションを再生します。

play(h);

現在のフォルダーに astMotion_JPEG.avi という名前のファイルが作成されたことを確認します。

待機

オブジェクトを変更する前に、アニメーションの再生が停止するまで待ちます。

wait(h);

ファイルを保存するには録画を無効にします。

h.VideoRecord = 'off';

アルゴリズム

Aero.Animation.play は、Aero.Body 'TimeSeriesSourceType' プロパティに従って時系列データを解釈します。このプロパティは、次のいずれかの値になります。

'Timeseries'

時間ごとに 6 つの値を持つ MATLAB® 時系列データ:

x y z phi theta psi

xyz は直交位置座標です。phithetapsi はロール、ピッチ、ヨーの角度です。値が再サンプリングされます。

'Simulink.Timeseries'

Simulink .Timeseries (Simulink® 信号ログ):

  • 最初のデータ項目

    x y z

  • 2番目のデータ項目

    phi theta psi

'StructureWithTime'

Simulink 構造体と時間、たとえば、Simulink ルート出力ポートのログ記録 'Structure with time':

  • signals(1).values: x y z

  • signals(2).values: phi theta psi

信号は、interp1 関数を使用して時間に対して線形補間されます。

'Array6DoF'6DOF データ用の n 行 7 列の倍精度配列: time x y z phi theta psi'TimeSeriesSource' に 8 列以上の倍精度配列がある場合、最初の 7 列が 6DOF データとして使用されます。
'Array3DoF'3DOF データ用の n 行 4 列の倍精度配列: time x z theta'TimeSeriesSource' に 5 列以上の倍精度配列がある場合、最初の 4 列が 3DOF データとして使用されます。
'Custom'位置と角度のデータは、現在登録されている 'TimeseriesReadFcn' によって 'TimeSeriesSource' から取得されます。

TStart および TFinal 値には次の制限があります。

  • TStartTFinal は数値である必要があります。

  • TStartTFinalInfNaN にはなりません。

  • TFinalTStart 以上でなければなりません。

  • TFinal は最大 Timeseries 時間より大きくすることはできません。

  • TStart は最小の Timeseries 時間より小さくすることはできません。

Aero.Animation.play メソッドは、ティックでカウントされるアニメーション フレームに基づく時間進行アルゴリズムを使用します。

ticks = ticks + 1;
time  = tstart + ticks*FramesPerSecond*TimeScaling;

ここで、

TimeScaling実時間の 1 秒あたりのアニメーション データの秒数を指定します。
FramesPerSecond'TimeSeriesSource' をアニメーション化するのに使用する 1 秒あたりのフレーム数を指定します。

デフォルトの 'TimeseriesReadFcn' メソッドの場合、最後に再生されたフレームが最後の時間値になります。

時間は秒単位です。位置の値は、アニメーション オブジェクトにロードされたジオメトリ データと同じ単位になります。すべての角度は、ラジアン単位です。

メモ

予想される時間の進み具合と実際の時間の進み具合に 15% の差がある場合、このメソッドは次の警告を生成します。

TimerPeriod has been set to <value>. You may wish to modify the animation 
TimeScaling and FramesPerSecond properties to compensate for the 
millisecond limit of the TimerPeriod.  See documentation for details.

バージョン履歴

R2007a で導入