Animation by GNUPLOT
Initiative for an Add-On Course
Somenath Jalal
Department of Physics
Netaji Mahavidyalaya
Plot sin wave
# Set up GIF output
set term gif animate optimize delay 10 size 600,400
set output "sinewave.gif"
# Axis and plot settings
set xrange [0:2*pi]
set yrange [-1.5:1.5]
set size ratio 0.5
set samples 500
unset key
set title "Sine Wave Animation"
# Loop over frames (simulate time evolution)
do for [t=0:100] {
phase = t*0.10
## plot sin(x - phase) lw 4 lc rgb "blue"
plot cos(x + phase) lw 4 lc rgb "red"
}
set output # Finalize GIF file
Sin wave with a red BALL
# Animated GIF of sine wave with a moving ball on the crest
set term gif animate optimize delay 10 size 600,400
set output "sinewave_ball.gif"
set xrange [0:2*pi]
set yrange [-1.5:1.5]
set samples 500
set size ratio 0.5
unset key
set title "Sine Wave with Ball on Crest"
# Constants
omega = 1.0 # angular frequency
ball_radius = 0.2
do for [t=0:100] {
phase = t*0.1
xball = pi/2 + phase # peak of sine(x - phase) is at x = pi/2 + phase
yball = sin(xball - phase) # = sin(pi/2) = 1
plot sin(x - phase) lw 4 lc rgb "blue", \
'+' using (xball):(yball) with points pt 7 ps 1.5 lc rgb "red"
}
set output
A red ball moving on Sine wave
# Create a rolling ball on a fixed sine wave
set term gif animate optimize delay 10 size 600,400
set output "rolling_ball.gif"
set xrange [0:2*pi]
set yrange [-1.5:1.5]
set samples 500
set size ratio 0.5
unset key
set title "Ball Rolling on a Fixed Sine Wave"
do for [t=0:100] {
xball = t * 2*pi/100 # move ball smoothly from x=0 to x=2π
yball = sin(xball) # y-position on sine wave
plot sin(x) lw 2 lc rgb "blue", \
'+' using (xball):(yball) with points pt 7 ps 1.5 lc rgb "red"
}
set output