2016-03-22 4 views
1

Ich versuche eine Animation von Jupiter, der Sonne und einem Asteroiden am stabilen Lagrange-Punkt L5 zu machen, während sie um ihren Massenschwerpunkt kreisen. Ich möchte diese Animation mit gnuplot machen.Wie man mehrere Punkte (Planeten) mit gnuplot aus einer einzigen Datei animiert.

Ich habe ein Programm geschrieben, das ihre Positionen zum Zeitpunkt t/AU findet. Die Daten, die ich bekomme, sind unten, haben Spalten, Zeit, x-Position, y-Position und haben Reihen, Planeten, Sonne, Asteroiden. Ich habe mir andere Lösungen zur Animation in gnuplot angeschaut, aber sie scheinen nicht für mich zu funktionieren. Bitte helfen Sie mir zu verstehen, was ich in die gnuplot-Befehlszeile eingeben muss, um eine Animation dieser Daten zu erhalten.

Vielen Dank.

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... 

Antwort

1

Dies ist nur ein Entwurf:

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 
} 

Sie ein animiertes Gif direkt erstellen:

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) 
} 

Nun ist diese recht einfach ist, kann aber eingestellt werden wirklich hohe Qualität zu machen Bilder.

+0

Schön. Beachten Sie auch, dass, wenn der Film ein langer Film ist, wenn der Benutzer in der Lage sein soll, zu blättern, eine bessere Idee wäre, etwas fortgeschritteneres als ein animiertes GIF zu verwenden. Erzeugen Sie zum Beispiel einzelne Frames mit gnuplot und fügen Sie sie dann mit einer externen Anwendung zusammen (Beispiel: http://stackoverflow.com/questions/28671129/gnuplot-and-sierpinks-i-bridle/28687379#28687379 und verwenden Sie stattdessen einen Video-Creator von 'konvertieren'). – Miguel