gnuplot:3次元空間で点が動くアニメーションをファイルを読まずに作るC言語コード
題名の通り。set viewによる視点移動も。
#include <stdio.h> #include <stdlib.h> #include <math.h> double t,dt; int main(){ double t=0,dt=0.01; FILE *gp; gp = popen("gnuplot --persist","w"); fprintf(gp,"set zrange [-300:300]\n"); fprintf(gp,"set xrange [-20:20]\n"); fprintf(gp,"set yrange [-20:20]\n"); while(1){ fprintf(gp,"set view 30,30*%lf\n",fmod(t,12)); fprintf(gp,"splot %lf*x*x+%lf*y*y\n",sin(t),cos(t)); fprintf(gp,"set label 1 point pt 7 pointsize 3 lc 1 at %lf,%lf,%lf\n", t,20*cos(t),20*sin(t)); fprintf(gp,"set label 2 point pt 2 ps 5 lc 2 at %lf,%lf,%lf\n", 2*sin(t),20*cos(2*t),20*sin(t)); fprintf(gp,"set label 3 point pt 3 ps 10 lc 3 at %lf,%lf,%lf\n", 2*sin(7*t),20*cos(3*t),20*sin(4*t)); fprintf(gp,"replot\n"); t+=dt; } pclose(gp); return 0; }
2次元アニメーションは次の過去記事のようにしてつくる。