How to | アニメーションを作成する方法
アニメーションは静的な表示よりも多くの情報を伝えることができる.組込みのWolfram言語関数であるAnimateおよびListAnimateは,グラフィックスあるいはWolframシステムノートブック内のどのような種類の式からでもアニメーションを即座に構築する方法を提供する.その他にもアニメーションとインタラクトするための数多くの方法があり,ManipulateおよびDynamicのようなインターフェースを構築するツールやImportおよびExportのようなファイルを操作するツールを使用する方法等が含まれる.
Animateを使って,変化する
の値についての
の絵をアニメーション化する:
Animate[Plot[Sin[a x], {x, 0, 2π}], {a, 0, 10}]Wolfram言語はグラフィックスだけでなく,どんな式でもアニメーション化することができる.ここでは,Animateが多項式の整数の累乗を順にスキャンする.DefaultDurationオプションがアニメーションの最初から最後までにかかる時間を秒で指定する:
Animate[Expand[(α + β) ^ n], {n, 1, 50, 1}, DefaultDuration -> 100]ListAnimateを使ってオブジェクトのリストをアニメーションにする.AnimationRunningオプションをFalseに設定することによってアニメーションが自動的に始まらないようにする:
list = {Graphics3D[Cuboid[]], Graphics[Rectangle[]], Graphics[Line[{{0, 0}, {1, 1}}]], Graphics[Point[{0, 0}]]};ListAnimate[list, AnimationRunning -> False]連続的な範囲については,Manipulateはアニメーションのコントロールを含める.このコントロールはデフォルトでは隠されている. Appearanceオプションを"Open"に設定することによってこれが自動的に表示されるようにする.複数の変数を一度にアニメーションすることができる:
Manipulate[Plot[a Sin[b (x + c)], {x, 0, 2 Pi}, PlotRange -> 1], {b, 1, 20, Appearance -> "Open"}, {{a, 1}, 0, 1, Appearance -> "Open"}, {c, 0, 2 Pi, Appearance -> "Open"}]グラフィックスやその他の任意式のリストをExportに渡して"SWF","AVI","TIFF",あるいはアニメーション化された"GIF"のいずれかのファイルでアニメーションを作成する.ExportもManipulate,Animate,ListAnimateが与えられる場合には,リストの代りにアニメーションを作成する:
list = {Graphics3D[Cuboid[]], Graphics[Rectangle[]], Graphics[Line[{{0, 0}, {1, 1}}]], Graphics[Point[{0, 0}]]};Export["animation.avi", list]"QuickTime","AVI","TIFF",アニメーション化された"GIF"ファイルのいずれかを"ImageList"と一緒にインポートしてアニメーション内の画像のリストを得る:
Head /@ Import["animation.avi", "ImageList"]アニメーションファイルから単一のフレームだけをインポートする:
indexes = Import["animation.avi", "Frames"]Import["animation.avi", {"Frames", indexes[[1]]}]Animatorコントロールはアニメーションの変数を動的に制御するためにAnimateあるいはManipulateの外で直接使用することができる:
Animator[Dynamic[var], {0, 10}]
Dynamic[Plot[Sin[var x], {x, 0, 2π}]]それ自身を自動的に変化させるDynamicは,事実上自己完結型のアニメーションである.DynamicModuleは変数カウンタの値を局所化して保存する:
DynamicModule[{counter = 0}, Dynamic[++counter]]Clock関数もDynamicの中で使って時間ベースのアニメーションを動かすことができる.以下は,20秒ごとにHue[0]からHue[1]まで色を変化させる円板である:
Graphics[{Dynamic[Hue[Clock[{0, 1}, 20]]], Disk[]}]