wxmaxima中的动画
Animation in wxmaxima
如何在wxmaxima中实现动画?假设我有一个函数 f(x) = x^a 并且我想以 gif 动画的形式绘制一个带有可变参数 a 的图形。文档说:
draw(
delay = 100,
file_name = "zzz",
terminal = 'animated_gif,
gr2d(explicit(x^2,x,-1,1)),
gr2d(explicit(x^3,x,-1,1)),
gr2d(explicit(x^4,x,-1,1)));
会有三帧延迟1秒(100延迟=1秒)。在 Maxima 中,您可以使用 'for' 循环。如何在draw()环境中正确插入for循环,使循环计数器调整帧数,绘制的函数取决于计数器?
我认为 draw
无法识别 for
循环。尝试通过 map
and/or makelist
建立帧列表。将任何其他参数附加到帧列表,然后说 apply('draw, mylist)
。类似于:
myfunctions: makelist (x^i, i, 1, n);
myframes: map (lambda ([e], gr2d (explicit (e, x, -1, 1))), myfunctions);
mylist: append ([delay = 100, file_name = "zzz", terminal = 'animated_gif], myframes);
apply ('draw, mylist);
其中 n
是您想要的帧数。
如何在wxmaxima中实现动画?假设我有一个函数 f(x) = x^a 并且我想以 gif 动画的形式绘制一个带有可变参数 a 的图形。文档说:
draw(
delay = 100,
file_name = "zzz",
terminal = 'animated_gif,
gr2d(explicit(x^2,x,-1,1)),
gr2d(explicit(x^3,x,-1,1)),
gr2d(explicit(x^4,x,-1,1)));
会有三帧延迟1秒(100延迟=1秒)。在 Maxima 中,您可以使用 'for' 循环。如何在draw()环境中正确插入for循环,使循环计数器调整帧数,绘制的函数取决于计数器?
我认为 draw
无法识别 for
循环。尝试通过 map
and/or makelist
建立帧列表。将任何其他参数附加到帧列表,然后说 apply('draw, mylist)
。类似于:
myfunctions: makelist (x^i, i, 1, n);
myframes: map (lambda ([e], gr2d (explicit (e, x, -1, 1))), myfunctions);
mylist: append ([delay = 100, file_name = "zzz", terminal = 'animated_gif], myframes);
apply ('draw, mylist);
其中 n
是您想要的帧数。