x(t) = t-sin(t)
y(t) = 1-cos(t)
# cycloid
if (!exist("Qm")) Qm = 2.5*pi
set parametric
set size ratio -1
unset key
set border 1 lc "white"
set ytics axis nomirror 1 tc "white"
set xtics nomirror 1
set trange [0:Qm]
set term wxt size 640,480 backg "#003344" 
    # please change to 'qt' if need
set xr [-1:Qm+1]
set yr [0:2]
set yzeroaxis lw 1 lt 1 lc "white" 

N = 100
do for[i = 0:N] { #animating on display
  q = Qm/N*i
  set obj 1 circle at q,1  size 1 lw 2 fs solid fc "gray" 
  set arrow 1 from q,1 to x(q),y(q) nohead lc "purple" lw 2
  set tr [0:q]
  plot x(t),y(t) lw 2 lc "gold" 
  pause 0.05
}

set term pngcairo size 480,360 font ",8" backg "#003344"
do for[i = 0:N] { 
  q = Qm/N*i
  set obj 1 circle at q,1  size 1 lw 2 fs solid fc "gray" 
  set arrow 1 from q,1 to x(q),y(q) nohead lc "purple" lw 2
  set tr [0:q]
  set out sprintf("im%03d.png",i)
  plot x(t),y(t) lw 2 lc "gold" 
}
system("convert -adjoin -delay 5 im*.png cycloid.gif");
system("rm im*.png")