ich versuche, eine flüssige Vektoranimation in gnuplot zu machen. Um die Vektorwerte zu erstellen, verwende ich FORTRAN. Mein FORTRAN-Unterprogramm druckt Vektordaten in einer txt-Datei namens vekdata.txt und erstellt eine andere Datei namens plotvek.txt mit gnuplot-Befehlen. Diese Subroutine befindet sich innerhalb einer do-Schleife, so dass für jede Iteration vekdata.txt aktualisiert wird.Gnuplot Animationsvektor
So war ich herumwandernd, wie ich eine Animation davon machen kann, wie es sich in der Zeit entwickelt? Gibt es einige einfache Befehle? Wie es jetzt ist, druckt es eine riesige Menge an Bildern auf meinen Bildschirm. Jedes Bild ist ein bisschen anders, also weiß ich, dass der Code funktioniert.
do t=1,1000
call vektorplot(storu,storv,n,Re,t)
end do
open(21,access='sequential',file='plotvek.txt',status='unknown')
write(21,*)'set term png enhanced'
write(21,*)'# plotvek.txt'
write(21,*)'set output sprintf(''frame_%09d.png'',',t,')'
!animation commands
write(21,*)'set output sprintf("frame_%9d",'t,')'
close(21,status='keep')
call execute_command_line("gnuplot -persist plotvek.txt")
Ich verstehe nicht, warum ich eine do-Schleife brauche, was macht es? Mein Programm befindet sich in einer do-Schleife (siehe bearbeiteter Code). Also kann ich das einfach als Variable verwenden, denke ich. Also möchte ich Gnuplut t = 1000 Bilder plotten, dann machen sie zu einem Film, ich habe versucht, die gnuplot Befehle zu machen (siehe bearbeiteter Code) – euroshopper
aber es funktioniert nicht kann es nicht lesen 'set output sprintf ("frame_% 9d ", 'n + 1,')" Befehl. Ich weiß nicht, wie die Syntax aussehen sollte wie ich Fortran in Mac schreiben, so ist meine Syntax schreiben (21, *) 'setzen Ausgabe sprintf (' 'frame_% 9d', t, ')' '' – euroshopper
Sorry, du hast Recht, das 'set terminal' ist in unserer for-Schleife und ich habe auch eine' 0' und ein Komma', 'und' .png' vergessen ... was für ein Durcheinander ... – bibi