使用鼠标在 gnuplot 中旋转动画图像
rotate an animated image in gnuplot with the mouse
我使用 gnuplot 创建了一些 3D 动画 gif。我无法在 gif 中查看所有绘制的数据。
使用 'set view' 命令不是最佳选择,因为绘图是自动进行的,而且数据因绘图而异,因此一个视图可能适用于一组数据,但不适用于另一组数据数据。
我认为让用户使用 his/her 鼠标旋转轴以查看不同角度会很好。我知道这在例如 x11 终端中是可能的,但是可以用 gif 来完成吗?也许可以使用 canvas 终端和 JavaScript.
另一个选项可能是自动绕轴旋转图像,这样当它加载时它已经在旋转,并且随着数据的动画而继续旋转。
有没有办法在 gnuplot 中做到这一点?
你的第二个选项是可行的。您可以在每次迭代中设置视角。
set terminal gif animate delay 5 loop 0 optimize
set output "rot.gif"
unset surface
set pm3d at s
set label "sin(x)" at screen 0.7, 0.9
n = 100
do for [i=1:n] {
set view 60, i*360/n
splot sin(x) notitle
}
set output
备注:
- 关键是从一个迭代到另一个迭代,所以我用一个固定的标签代替了它。
i*360/n
在一个完整的动画中创建一个完整的情节旋转
我使用 gnuplot 创建了一些 3D 动画 gif。我无法在 gif 中查看所有绘制的数据。
使用 'set view' 命令不是最佳选择,因为绘图是自动进行的,而且数据因绘图而异,因此一个视图可能适用于一组数据,但不适用于另一组数据数据。
我认为让用户使用 his/her 鼠标旋转轴以查看不同角度会很好。我知道这在例如 x11 终端中是可能的,但是可以用 gif 来完成吗?也许可以使用 canvas 终端和 JavaScript.
另一个选项可能是自动绕轴旋转图像,这样当它加载时它已经在旋转,并且随着数据的动画而继续旋转。
有没有办法在 gnuplot 中做到这一点?
你的第二个选项是可行的。您可以在每次迭代中设置视角。
set terminal gif animate delay 5 loop 0 optimize
set output "rot.gif"
unset surface
set pm3d at s
set label "sin(x)" at screen 0.7, 0.9
n = 100
do for [i=1:n] {
set view 60, i*360/n
splot sin(x) notitle
}
set output
备注:
- 关键是从一个迭代到另一个迭代,所以我用一个固定的标签代替了它。
i*360/n
在一个完整的动画中创建一个完整的情节旋转