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