animationToFrame
説明
例
アニメーション フレームを返す
移動する円のアニメーションを作成して、アニメーションの特定のフレームを返します。
まず、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
frames=1×101 struct array with fields:
cdata
colormap
frames
構造体には 2 つのフィールドがあります。cdata
フィールドは uint8
値の配列としてイメージ データを格納します。
関数imshow
を使用してアニメーション フレームを再構築します。たとえば、アニメーションの 50 番目のフレームと最後のフレームを表示します。
imshow(frames(50).cdata)
imshow(frames(101).cdata)
アニメーション フレームを逆の順序で返す
移動する円のアニメーション オブジェクトとタイマー アニメーション オブジェクトを作成します。生成されたアニメーション フレームを逆の順序で返します。
まず、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)
frames=1×21 struct array with fields:
cdata
colormap
frames
構造体には 2 つのフィールドがあります。cdata
フィールドは uint8
値の配列としてイメージ データを格納します。
関数imshow
を使用してアニメーション フレームを再構築します。たとえば、新しい Figure ウィンドウでアニメーションの最初のフレームと 11 番目のフレームを表示します。
fig2 = figure; imshow(frames(1).cdata)
imshow(frames(11).cdata)
入力引数
fig
— ターゲット Figure
Figure
オブジェクト
ターゲット Figure。Figure
オブジェクトとして指定します。Figure
オブジェクトの詳細については、figure
を参照してください。
名前と値の引数
オプションの引数のペアを Name1=Value1,...,NameN=ValueN
として指定します。ここで、Name
は引数名、Value
は対応する値です。名前と値の引数は他の引数の後になければなりませんが、ペアの順序は関係ありません。
R2021a より前では、コンマを使用して名前と値の各ペアを区切り、Name
を引用符で囲みます。
例: 'Backwards',true,'AnimationRange',[-2 5]
AnimationRange
— アニメーションの時間パラメーターの範囲
[0 10]
(既定値) | 2 要素の行ベクトル
アニメーションの時間パラメーターの範囲。2 要素の行ベクトルとして指定します。2 要素は増加する実数値でなければなりません。
例: [-2 4.5]
FrameRate
— フレーム レート
10
(既定値) | 正の値
フレーム レート。正の値で指定します。フレーム レートは、アニメーション フレームを構造体配列として返す場合の単位時間あたりのフレーム数を定義します。
例: 20
Backwards
— 逆方向オプション
logical 0
(false
) (既定値) | logical 値
逆方向オプション。logical 値 (boolean) として指定します。true
を指定した場合、関数はアニメーション フレームを逆方向、つまり逆の順序で返します。
例: true
出力引数
バージョン履歴
R2019a で導入
MATLAB コマンド
次の MATLAB コマンドに対応するリンクがクリックされました。
コマンドを MATLAB コマンド ウィンドウに入力して実行してください。Web ブラウザーは MATLAB コマンドをサポートしていません。
Select a Web Site
Choose a web site to get translated content where available and see local events and offers. Based on your location, we recommend that you select: .
You can also select a web site from the following list:
How to Get Best Site Performance
Select the China site (in Chinese or English) for best site performance. Other MathWorks country sites are not optimized for visits from your location.
Americas
- América Latina (Español)
- Canada (English)
- United States (English)
Europe
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)