plots[animate] - 1 つのパラメータについて、2-D または 3-D アニメーションを作成します
使い方
animate(plotcommand, plotargs, t=a..b, options)
animate(plotcommand, plotargs, t=L, options)
パラメータ
plotcommand - 2-D または 3-D プロットを作成するMaple の手続き
plotargs - plot コマンドに対する引数
t - アニメーションが作成されるパラメータの名前
a, b - アニメーションの範囲を与える実数の定数
L - 実数または複素数の定数のリスト
options - (オプション) animate コマンドもしくは plot コマンドのオプションを options=value の形で指定します。
|
説明
|
|
•
|
animate コマンドは、Mapleのどんなプロットコマンドに対しても、1 パラメータについてのアニメーションを作成することができます。例えば、振幅 A の正弦曲線 A*sin(x) のアニメーションを作成します。
|
animate( plot, [A*sin(x),x=0..10], A=0..2 );
|
このコマンドは、フレーム数 25 のアニメーションを作成します。Maple の GUIでは、テープレコーダの表示のボタンに似たボタンをもつツールバーが表示されます。アニメーションを `実行する' ためには、play ボタンをクリックしてください。
|
•
|
animate コマンドは、どんな Maple 2-D あるいは 3-D plot コマンドに対してもアニメーションを作成することができます。
|
•
|
最初のコールでは、フレーム数 25 のアニメーションが、範囲 a..b のアニメーションパラメータA の等間隔の25個の実数値に対して作成されます。次に呼び出すと、数のリストが、アニメーションに使用されます。この数は、実数または複素数となることができます。
|
•
|
2 番目の入力 plotargs は、プロットのコマンド plotcommand に対する引数のリストです。2 つの異なる周波数に対して正弦関数をプロットするためには、つぎのようにすることができます:
|
plot( sin(2*x), x=-Pi..Pi, thickness=2 );
plot( sin(3*x), x=-Pi..Pi, thickness=2 );
•
|
これを、大きさについてのアニメーション表示に変換するためには、plot コマンドに対する上記の引数を、つぎのように、リストに置いてください。
|
animate( plot, [sin(A*x), x=-Pi..Pi, thickness=2], A=1..5 );
•
|
時間的に追跡して曲線のアニメーション表示を行うには、(複数も可の) ドメインパラメータ、上記の例では xをアニメーションパラメータに依存させます。たとえば、つぎは、時間 t について追跡した正弦波です。
|
animate( plot, [sin(x),x=0..t], t=0..12 );
•
|
3-D のアニメーションも同様にして得られます。たとえば、つぎのようにします。
|
animate( plot3d, [sin(A)*(x^2+y^2),x=-2..2,y=-2..2], A=0..2*Pi );
•
|
animate コマンドに対するその他の引数は、オプションとして解釈されます。それらは、option = value の形の等式です。 下記に述べるオプションは、animate コマンドに固有のものです。scaling=constrained などの他のオプションは、 plots[display] コマンドに渡されます。
|
•
|
デフォルトでは、animate コマンドは、アニメーションのパラメータの区間 A=a..b で等間隔の 25 個のフレームを生成します。オプションの引数 frames=n は、アニメーションが n フレームもつように指定します。n は、非負の整数である必要があることに注意してください。
|
•
|
デフォルトでは、アニメーションのパラメータ A の数値は、プロットのタイトルの部分に、アニメーションの各フレームに対して、有効桁 5 桁 が表示されます。オプションの引数 paraminfo=false は、この情報をオフにします。オプションの引数 digits=n は、有効桁数を変えて表示するために使用されます。n が正の整数である必要があることに注意してください。
|
•
|
オプション background=P は、アニメーションの各フレームに対してバックグラウンドのプロットを指定します。P の値は、PLOT または PLOT3D オブジェクト、すなわち、2-D または 3-D のプロットコマンドの出力、あるいは、数になります。これが数である場合、A=P に対して plotcommand により作成されるプロットは、バックグラウンドに使用されます。
|
•
|
アニメーションの各フレームが、2 つまたはそれ以上の異なるプロットを含む場合には、各フレームを作成し、アニメーションを行えるような Maple の手続きをかいてください。下記の例で、最後の例を参照してください。
|
•
|
既存のプロットから アニメーションを作成するためには、plots[display] 関数で insequence オプションを使用してください。 これは、animate コマンドが行っていることです。
|
|
注意: アニメーションは、GIF アニメーションファイルで保存できます。GIF ファイルの生成については、plot[device] をご覧ください。
|
•
|
コマンド with(plots,animate) により、このコマンドの省略形を使用することもできます。
|
|
|
例
|
|
>
|
with(plots):
animate( plot, [A*(x^2-1),x=-4..4], A=-2..2 );
animate( plot, [(x-A)^2-1,x=-4..4], A=-2..2 );
|
減衰する正弦波:
>
|
animate( plot, [sin(x)*exp(-x/5),x=0..t], t=0..20, frames=50 );
animate( plot, [sin(x)*exp(-x/5),x=t-2*Pi..t], t=0..20, frames=50 );
|
減衰する正弦波に沿って小さい球をころがすために、減衰正弦波をバックグラウンドのフレームとし、球をアニメーション表示します。
>
|
sinewave := plot( sin(x)*exp(-x/5),x=0..20 ):
animate( pointplot, [ [[t,sin(t)*exp(-t/5)]],symbol=circle,symbolsize=10],
t=0..20, frames=60, background=sinewave );
|
次の例では、円の三角関数によるパラメータ表示 、有理式を用いたパラメータ表示 を使用して、円をトレースします。後者は、一様な動きをしません。
>
|
animate( plot, [[cos(t),sin(t),t=0..A]],
A=0..2*Pi, scaling=constrained, frames=50 );
animate( plot, [[(1-t^2)/(1+t^2),2*t/(1+t^2),t=-10..A]],
A=-10..10, scaling=constrained, frames=50 );
|
インプリシットな式として与えられた楕円曲線 :
>
|
curve := implicitplot( x^3+y^2, x=-3..1, y=-4..4, color=blue ):
animate( implicitplot, [x^3-A*y+y^2,x=-3..1,y=-4..4],
A=-2..2, background=curve );
|
パラメータを使用して定義された3-D空間内の曲線:
>
|
opts := thickness=5, numpoints=100, color=black:
animate( spacecurve, [[cos(t),sin(t),(2+sin(A))*t],
t=0..20, opts], A=0..2*Pi );
|
背景の曲面と曲面をトレースする曲線です。背景のフレームは、曲面の 3-D プロットです。曲線は、黒い太線です。
>
|
B := plot3d( 1-x^2-y^2, x=-1..1, y=-1..1, style=patchcontour ):
opts := thickness=5, color=black:
animate( spacecurve, [[t,t,1-2*t^2], t=-1..A, opts],
A=-1..1, frames=11, background=B );
|
Maple の手続きの使用例として、青い箱が単純な調和振動を行う様子をアニメーション表示します。
>
|
with(plottools,rectangle):
box := proc(x,y,r) PLOT(rectangle([-x-r,y-r],[x+r,y+r],color=blue)) end;
animate( box, [0,sin(t),0.2], t=0..4*Pi, scaling=constrained, frames=100 );
|
最後の例では、アニメーションに複数のオブジェクトがある場合を表示します。
>
|
with(plottools,line):
F := proc(t)
plots[display](
line([-2,0],[cos(t)-2,sin(t)],color=blue),
line([cos(t)-2,sin(t)],[t,sin(t)],color=blue),
plot(sin(x),x=0..t,view=[-3..7,-5..5]) );
end:
animate(F,[theta],theta=0..2*Pi,
background=plot([cos(t)-2,sin(t),t=0..2*Pi]),
scaling=constrained,axes=none);
|
|
|