前回の記事では山本信雄さんの「卵形曲線の方程式」を陰関数で表示させてみました。引き続き、パラメータによって卵形が変化する様子をアニメーションにしてやろうと思ったのです。それでマリオさんの例題を参照してみました。インラインではなくて、アニメーションGIFを出力させることが目的です。まず例題をコピペして実行させましたが、pic_width = 300,pic_height = 300 は使うなとMaximaに文句を言われたので、ご推奨の dimensions = [360,300] に書き換えたものが以下です。
draw(terminal = animated_gif,
delay = 60,
file_name = "gifanim",
dimensions = [360,300],
gr2d(explicit(x^0.1,x,0,1)),
gr2d(explicit(x^0.2,x,0,1)),
gr2d(explicit(x^0.3,x,0,1)),
gr2d(explicit(x^0.4,x,0,1)),
gr2d(explicit(x^0.5,x,0,1)),
gr2d(explicit(x^0.6,x,0,1)),
gr2d(explicit(x^0.7,x,0,1)),
gr2d(explicit(x^0.8,x,0,1)),
gr2d(explicit(x^0.9,x,0,1)),
gr2d(explicit(x^1,x,0,1)) );
出力された画面を見て、フレームのサイズもやや修正、delay = 60 としてややゆっくり動かしたのが冒頭のgifです。Maximaでは一連のシーンを描く時に使われるのが関数drawです。マニュアルでは以下のように記述されています。
関数: draw (gr2d, ..., gr3d, ..., options, ...)
一連のシーンをプロットします; 引数はgr2dやgr3dのオブジェクトといくつかのオプションです。デフォルトでは、シーンは1列の中に一緒に置かれます。
関数drawは以下のグローバルオプションを受け付けます: terminal, columns, dimensions, file_name, delay.
関数draw2dやdraw3dはそれぞれ、2次元と3次元に関して、1つのシーンだけが要求される時に使われるショートカットです。
シーン構成子gr2dの中にimplictを書いてやればアニメーションになるはずです。やってみました。
この記事で参考にさせて頂いたのは山本信雄さんの「卵型曲線の方程式は?創造への一歩」です。円から卵形に変化する様子がアニメーションになりました。
draw(terminal = animated_gif,
delay = 60,
file_name = "gifanim_imp",
dimensions = [360,300],
gr2d(implicit((x^2+y^2)^2=4*x^3+20*x*y^2/5, x, 0,5,y, -2.5,2.5)),
gr2d(implicit((x^2+y^2)^2=4*x^3+16*x*y^2/5, x, 0,5,y, -2.5,2.5)),
gr2d(implicit((x^2+y^2)^2=4*x^3+12*x*y^2/5, x, 0,5,y, -2.5,2.5)),
gr2d(implicit((x^2+y^2)^2=4*x^3+8*x*y^2/5, x, 0,5,y, -2.5,2.5)),
gr2d(implicit((x^2+y^2)^2=4*x^3+4*x*y^2/5, x, 0,5,y, -2.5,2.5)),
gr2d(implicit((x^2+y^2)^2=4*x^3, x, 0,5,y, -2.5,2.5)));
色を変える、グリッドや軸を表示させるパラメータはgr2d()の中に書けばもっと分かりやすくなるでしょう。次回はもう少し工夫してみましょう。
↓ポチッと応援お願いします!
draw(terminal = animated_gif,
delay = 60,
file_name = "gifanim",
dimensions = [360,300],
gr2d(explicit(x^0.1,x,0,1)),
gr2d(explicit(x^0.2,x,0,1)),
gr2d(explicit(x^0.3,x,0,1)),
gr2d(explicit(x^0.4,x,0,1)),
gr2d(explicit(x^0.5,x,0,1)),
gr2d(explicit(x^0.6,x,0,1)),
gr2d(explicit(x^0.7,x,0,1)),
gr2d(explicit(x^0.8,x,0,1)),
gr2d(explicit(x^0.9,x,0,1)),
gr2d(explicit(x^1,x,0,1)) );
出力された画面を見て、フレームのサイズもやや修正、delay = 60 としてややゆっくり動かしたのが冒頭のgifです。Maximaでは一連のシーンを描く時に使われるのが関数drawです。マニュアルでは以下のように記述されています。
関数: draw (gr2d, ..., gr3d, ..., options, ...)
一連のシーンをプロットします; 引数はgr2dやgr3dのオブジェクトといくつかのオプションです。デフォルトでは、シーンは1列の中に一緒に置かれます。
関数drawは以下のグローバルオプションを受け付けます: terminal, columns, dimensions, file_name, delay.
関数draw2dやdraw3dはそれぞれ、2次元と3次元に関して、1つのシーンだけが要求される時に使われるショートカットです。
シーン構成子gr2dの中にimplictを書いてやればアニメーションになるはずです。やってみました。
この記事で参考にさせて頂いたのは山本信雄さんの「卵型曲線の方程式は?創造への一歩」です。円から卵形に変化する様子がアニメーションになりました。
draw(terminal = animated_gif,
delay = 60,
file_name = "gifanim_imp",
dimensions = [360,300],
gr2d(implicit((x^2+y^2)^2=4*x^3+20*x*y^2/5, x, 0,5,y, -2.5,2.5)),
gr2d(implicit((x^2+y^2)^2=4*x^3+16*x*y^2/5, x, 0,5,y, -2.5,2.5)),
gr2d(implicit((x^2+y^2)^2=4*x^3+12*x*y^2/5, x, 0,5,y, -2.5,2.5)),
gr2d(implicit((x^2+y^2)^2=4*x^3+8*x*y^2/5, x, 0,5,y, -2.5,2.5)),
gr2d(implicit((x^2+y^2)^2=4*x^3+4*x*y^2/5, x, 0,5,y, -2.5,2.5)),
gr2d(implicit((x^2+y^2)^2=4*x^3, x, 0,5,y, -2.5,2.5)));
色を変える、グリッドや軸を表示させるパラメータはgr2d()の中に書けばもっと分かりやすくなるでしょう。次回はもう少し工夫してみましょう。
↓ポチッと応援お願いします!