Main Content

このページの翻訳は最新ではありません。ここをクリックして、英語の最新版を参照してください。

animationToFrame

フレームの構造体をアニメーション オブジェクトから返す

説明

frames = animationToFrame は、フレームの構造体配列をアニメーション オブジェクトから返します。アニメーション オブジェクトは関数 fanimator を使用して作成しなければなりません。

frames = animationToFrame(fig) は、フレームの構造体配列を Figure fig のアニメーション オブジェクトから返します。

frames = animationToFrame(___,Name,Value) は指定された Name,Value のペアの引数を使用します。このオプションは、前述の構文のすべての入力引数の組み合わせで使用できます。

すべて折りたたむ

移動する円のアニメーションを作成して、アニメーションの特定のフレームを返します。

まず、2 つのシンボリック変数 t および x を作成します。変数 t はアニメーションの時間パラメーターを定義します。t を使用して円の中心を (t,1) に設定し、x を使用して [-pi pi] の範囲内で円の周囲長をパラメーター化します。fanimatorを使用して、円のアニメーション オブジェクトを作成します。x 軸と y 軸が同じ長さになるように設定します。

syms t x
fanimator(@fplot,cos(x)+t,sin(x)+1,[-pi pi])
axis equal

既定では、fanimator は、t の 0 から 10 までの範囲で、単位時間あたり 10 フレームを生成してアニメーション オブジェクトを生成します。既定のアニメーション オブジェクトには合計 101 のフレームが含まれます。コマンドplayAnimationを使用してアニメーションを再生します。

次に、animationToFrame を使用して、アニメーション オブジェクトからフレームの構造体配列を返します。

frames = animationToFrame

Figure contains an axes object. The axes object contains an object of type parameterizedfunctionline.

frames=1×101 struct array with fields:
    cdata
    colormap

frames 構造体には 2 つのフィールドがあります。cdata フィールドは uint8 値の配列としてイメージ データを格納します。

関数imshowを使用してアニメーション フレームを再構築します。たとえば、アニメーションの 50 番目のフレームと最後のフレームを表示します。

imshow(frames(50).cdata)

Figure contains an axes object. The axes object contains an object of type image.

imshow(frames(101).cdata)

Figure contains an axes object. The axes object contains an object of type image.

移動する円のアニメーション オブジェクトとタイマー アニメーション オブジェクトを作成します。生成されたアニメーション フレームを逆の順序で返します。

まず、2 つのシンボリック変数 t および x を作成します。変数 t はアニメーションの時間パラメーターを定義します。アニメーションの Figure ウィンドウを作成します。

syms t x
fig1 = figure;

fanimatorを使用して、円のアニメーション オブジェクトを作成します。t を使用して円の中心を (t,1) に設定し、x を使用して [-pi pi] の範囲内で円の周囲長をパラメーター化します。x 軸と y 軸が同じ長さになるように設定します。

fanimator(@fplot,cos(x)+t,sin(x)+1,[-pi pi])
axis equal

次に、関数textを使用して、経過時間をカウントするテキストを追加します。num2strを使用して時間パラメーターを文字列に変換します。

hold on
fanimator(@(t) text(8,3,"Timer: "+num2str(t,2)))
hold off

既定では、fanimator を使用すると、単位時間あたりのフレーム数を 10 として t の範囲が 0 から 10 までのストップモーション フレームが作成されます。既定のアニメーション オブジェクトには合計 101 のフレームが含まれます。コマンドplayAnimationを使用してアニメーションを再生します。

次に、animationToFrame を使用して、Figure fig のアニメーションからフレームの構造体配列を返します。'Backwards' オプションを true に設定することで、アニメーション フレームを逆の順序で返します。単位時間あたりのフレーム レートを 2 に設定して、合計 21 のフレームを返します。

frames = animationToFrame(fig1,'Backwards',true,'FrameRate',2)

Figure contains an axes object. The axes object contains 2 objects of type parameterizedfunctionline, text.

frames=1×21 struct array with fields:
    cdata
    colormap

frames 構造体には 2 つのフィールドがあります。cdata フィールドは uint8 値の配列としてイメージ データを格納します。

関数imshowを使用してアニメーション フレームを再構築します。たとえば、新しい Figure ウィンドウでアニメーションの最初のフレームと 11 番目のフレームを表示します。

fig2 = figure;
imshow(frames(1).cdata)

Figure contains an axes object. The axes object contains an object of type image.

imshow(frames(11).cdata)

Figure contains an axes object. The axes object contains an object of type image.

入力引数

すべて折りたたむ

ターゲット Figure。Figure オブジェクトとして指定します。Figure オブジェクトの詳細については、figure を参照してください。

名前と値の引数

オプションの引数のペアを Name1=Value1,...,NameN=ValueN として指定します。ここで、Name は引数名、Value は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は関係ありません。

R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name を引用符で囲みます。

例: 'Backwards',true,'AnimationRange',[-2 5]

アニメーションの時間パラメーターの範囲。2 要素の行ベクトルとして指定します。2 要素は増加する実数値でなければなりません。

例: [-2 4.5]

フレーム レート。正の値で指定します。フレーム レートは、アニメーション フレームを構造体配列として返す場合の単位時間あたりのフレーム数を定義します。

例: 20

逆方向オプション。logical 値 (boolean) として指定します。true を指定した場合、関数はアニメーション フレームを逆方向、つまり逆の順序で返します。

例: true

出力引数

すべて折りたたむ

アニメーション フレーム。次の 2 つのフィールドがある構造体配列として返されます。

  • cdatauint8 値の配列として格納されるイメージ データ。イメージ データ配列のサイズは画面の解像度により異なります。

  • colormap — カラーマップ。トゥルーカラー システムでは、このフィールドは空です。

関数 animationToFrame は、アニメーション フレームの構造体を関数 getframe によって返される出力と同じ形式で返します。

バージョン履歴

R2019a で導入