#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#define N 3

int main(int argc, char ** argv) {
  FILE *gp;
  int i;
  double x[N], y[N], vx[N], vy[N];
  double d, dt=0.1;
  gp = popen("gnuplot", "w");
  fprintf(gp, "set xrange [-10:10]; set yrange [-10:10]\n");
  fprintf(gp, "unset key; unset colorbox; set size square\n");
  for (i=0; i<N; i++) {
    x[i] = 3+i; y[i] = 0;
    vx[i] = 0; vy[i] = 0.07*x[i]; 
  }
  for (double t=0; ; t+=dt) {
    fprintf(gp, "plot '-' u 1:2:3 w p palette ps 3 pt 7\n");
    fprintf(gp, "0 0 3 \n"); // sun
    for (i=0; i<N; i++) {
      fprintf(gp, "%f %f %d\n", x[i], y[i], 2-i);
      x[i] += vx[i]*dt;
      y[i] += vy[i]*dt;
      d = pow(x[i]*x[i]+y[i]*y[i], 3./2);
      vx[i] -= 0.05*x[i]/d;
      vy[i] -= 0.05*y[i]/d;
    }
    fprintf(gp, "end\n");
  }
  fflush(gp); // empty buffer
  getchar(); // wait
  return (0);
}