如何使用 gnuplot 从单个数据文件为多个点(行星)制作动画。
How to animate multiple points (planets) using gnuplot, from a single data file.
我正在尝试制作木星、太阳和小行星在稳定的拉格朗日点 L5 围绕其质心运行时的动画。我想用 gnuplot 做这个动画。
我写了一个程序,可以找到它们在时间 t/AU 的位置。我得到的数据在下面,有列、时间、x 位置、y 位置,还有行、行星、太阳、小行星。我已经查看了在 gnuplot 中制作动画的其他解决方案,但它们似乎对我不起作用。请帮助我理解我需要在 gnuplot 命令行中输入什么来获取此数据的动画。
谢谢。
0 0 5.19481
0 0 -0.00519481
0 4.50634 2.6
0.01 0.0275397 5.19473
0.01 -2.75397e-05 -0.00519473
0.01 4.52006 2.57607
0.02 0.0550786 5.19451
0.02 -5.50786e-05 -0.00519451
0.02 4.53365 2.55208
0.03 0.082616 5.19415
0.03 -8.2616e-05 -0.00519415
0.03 4.54712 2.52801
0.04 0.110151 5.19364
0.04 -0.000110151 -0.00519364
0.04 4.56046 2.50386
0.05 0.137683 5.19298
0.05 -0.000137683 -0.00519298
0.05 4.57367 2.47965
0.06 0.165211 5.19218
0.06 -0.000165211 -0.00519218
0.06 4.58675 2.45537
etc...
这只是草稿:
stats 'test.txt' u 2:3
set xr [STATS_min_x:STATS_max_x]
set yr [STATS_min_y:STATS_max_y]
do for [i=0:STATS_blocks-1] {
plot 'test.txt' index i u 2:3 w p pt 7 title sprintf("time: %f",i*0.01)
pause 1
}
您可以直接制作gif动画:
stats 'test.txt' u 2:3
set xr [STATS_min_x:STATS_max_x]
set yr [STATS_min_y:STATS_max_y]
set term gif animate
set output 'test.gif'
do for [i=0:STATS_blocks-1] {
plot 'test.txt' index i u 2:3 w p pt 7 title sprintf("time: %f",i*0.01)
}
现在这是非常基本的,但可以调整以制作真正高质量的图像。
我正在尝试制作木星、太阳和小行星在稳定的拉格朗日点 L5 围绕其质心运行时的动画。我想用 gnuplot 做这个动画。
我写了一个程序,可以找到它们在时间 t/AU 的位置。我得到的数据在下面,有列、时间、x 位置、y 位置,还有行、行星、太阳、小行星。我已经查看了在 gnuplot 中制作动画的其他解决方案,但它们似乎对我不起作用。请帮助我理解我需要在 gnuplot 命令行中输入什么来获取此数据的动画。
谢谢。
0 0 5.19481
0 0 -0.00519481
0 4.50634 2.6
0.01 0.0275397 5.19473
0.01 -2.75397e-05 -0.00519473
0.01 4.52006 2.57607
0.02 0.0550786 5.19451
0.02 -5.50786e-05 -0.00519451
0.02 4.53365 2.55208
0.03 0.082616 5.19415
0.03 -8.2616e-05 -0.00519415
0.03 4.54712 2.52801
0.04 0.110151 5.19364
0.04 -0.000110151 -0.00519364
0.04 4.56046 2.50386
0.05 0.137683 5.19298
0.05 -0.000137683 -0.00519298
0.05 4.57367 2.47965
0.06 0.165211 5.19218
0.06 -0.000165211 -0.00519218
0.06 4.58675 2.45537
etc...
这只是草稿:
stats 'test.txt' u 2:3
set xr [STATS_min_x:STATS_max_x]
set yr [STATS_min_y:STATS_max_y]
do for [i=0:STATS_blocks-1] {
plot 'test.txt' index i u 2:3 w p pt 7 title sprintf("time: %f",i*0.01)
pause 1
}
您可以直接制作gif动画:
stats 'test.txt' u 2:3
set xr [STATS_min_x:STATS_max_x]
set yr [STATS_min_y:STATS_max_y]
set term gif animate
set output 'test.gif'
do for [i=0:STATS_blocks-1] {
plot 'test.txt' index i u 2:3 w p pt 7 title sprintf("time: %f",i*0.01)
}
现在这是非常基本的,但可以调整以制作真正高质量的图像。