BEGIN{ pi=3.141592654 r=6 w=2 q=2 theta=50 phi=50 n1=11 n2=8 n3=8 np=20 r2=1.5 r3=2 y0=r*sin(phi/180*pi) a=q/y0^2 ds=0.5 printf "#=========================================\n" printf "# Spangler's model\n" printf "#=========================================\n" printf "reset\n" printf "set terminal postscript eps enhanced font \"Helvetica\" 16\n" printf "set output \"fig_gpl_spangler.eps\"\n" printf "#\n" printf "set multiplot\n" printf "set origin 0,0\n" printf "set size ratio -1\n" printf "set parametric\n" printf "#\n" printf "set xrange [%g:%g]\n",-r-2*q,r+2*q printf "set yrange [%g:%g]\n",-r-2*w,r+2*w printf "set border 0\n" printf "set xtics 0,0,0\n" printf "set ytics 0,0,0\n" printf "set xtics nomirror\n" printf "set ytics nomirror\n" printf "#\n" printf "set style arrow 1 size graph 0.02,10 nohead linewidth 1 linetype 5 # 中心線\n" printf "set style arrow 2 size graph 0.02,10 nohead linewidth 1 linetype 1 # 補助線\n" printf "set style arrow 3 size graph 0.02,20 filled heads linewidth 1 linetype 1 # 両矢印\n" printf "set style arrow 4 size graph 0.02,20 filled linewidth 1 linetype 1 # 片矢印\n" printf "set style arrow 5 size graph 0.02,20 nohead linewidth 3 linetype 1 # 太い実線\n" printf "set style arrow 6 size graph 0.02,20 empty linewidth 1 linetype 1 # 中が白い矢印(座標軸)\n" printf "#\n" printf "#\n" for(i=0;i<=n1;i++){ y1=r+w x1=-r+2*r/n1*i y2=r x2=x1 printf "set arrow as 4 from %g,%g to %g,%g\n",x1,y1,x2,y2 } for(i=0;i<=n2;i++){ y1=-r-w/sin(theta/180*pi) x1=-r*sin(theta/180*pi)+2*r*sin(theta/180*pi)/n2*i y2=-r x2=x1 printf "set arrow as 4 from %g,%g to %g,%g\n",x1,y1,x2,y2 } for(i=1;i<=n3;i++){ y1=y0-2*y0/n3*i x1=q-a*y1^2+r y2=y1 x2=r printf "set arrow as 4 from %g,%g to %g,%g\n",x1,y1,x2,y2 } for(i=1;i<=n3;i++){ y1=y0-2*y0/n3*i x1=-(q-a*y1^2+r) y2=y1 x2=-r printf "set arrow as 4 from %g,%g to %g,%g\n",x1,y1,x2,y2 } printf "set arrow as 4 from %g,%g to %g,%g\n",x1,y1,x2,y2 printf "#\n" printf "set label \"W\" at %g,%g center\n",0,r+w+ds printf "set label \"W/sin({/Symbol q}/2)\" at %g,%g center\n",0,-r-w/sin(theta/180*pi)-ds printf "set label \"q\" at %g,%g center\n",r+q+ds,0 printf "set label \"q\" at %g,%g center\n",-r-q-ds,0 printf "set label \"{/Symbol q}\" at %g,%g center\n",0,-r2-ds printf "set label \"100{\312}\" at %g,%g center\n",r3+2*ds,0 printf "set label \"100{\312}\" at %g,%g center\n",-r3-2*ds,0 printf "#\n" printf "r=%g\n",r printf "r2=%g\n",r2 printf "r3=%g\n",r3 printf "#\n" printf "set trange [0:2*pi]\n" printf "plot \\\n" printf "r*cos(t),r*sin(t) with lines linewidth 5 linetype 1 notitle, \\\n" printf "\"-\" with lines linewidth 3 linetype 1 notitle, \\\n" printf "\"-\" with lines linewidth 3 linetype 1 notitle, \\\n" printf "\"-\" with lines linewidth 3 linetype 1 notitle, \\\n" printf "\"-\" with lines linewidth 3 linetype 1 notitle, \\\n" printf "\"-\" with lines linewidth 1 linetype 4 notitle, \\\n" printf "\"-\" with lines linewidth 1 linetype 2 notitle, \\\n" printf "\"-\" with lines linewidth 1 linetype 2 notitle\n" for(i=0;i<=np;i++){ y=y0-2*y0/np*i x=q-a*y^2+r printf "%g %g\n",x,y } printf "%g %g\n",r,y0 printf "e\n" for(i=0;i<=np;i++){ y=y0-2*y0/np*i x=-(q-a*y^2+r) printf "%g %g\n",x,y } printf "%g %g\n",-r,y0 printf "e\n" printf "%g %g\n",-r,r printf "%g %g\n",-r,r+w printf "%g %g\n",+r,r+w printf "%g %g\n",+r,r printf "%g %g\n",-r,r printf "e\n" printf "%g %g\n",-r*sin(theta/180*pi),-r printf "%g %g\n",-r*sin(theta/180*pi),-r-w/sin(theta/180*pi) printf "%g %g\n",+r*sin(theta/180*pi),-r-w/sin(theta/180*pi) printf "%g %g\n",+r*sin(theta/180*pi),-r printf "%g %g\n",-r*sin(theta/180*pi),-r printf "e\n" printf "%g %g\n",-r*sin(theta/180*pi),-r printf "%g %g\n",-r*sin(theta/180*pi),-r*cos(theta/180*pi) printf "%g %g\n",0,0 printf "%g %g\n",r*sin(theta/180*pi),-r*cos(theta/180*pi) printf "%g %g\n",r*sin(theta/180*pi),-r printf "e\n" printf "%g %g\n",r,y0 printf "%g %g\n",r*cos(phi/180*pi),y0 printf "%g %g\n",0,0 printf "%g %g\n",r*cos(phi/180*pi),-y0 printf "%g %g\n",r,-y0 printf "e\n" printf "%g %g\n",-r,y0 printf "%g %g\n",-r*cos(phi/180*pi),y0 printf "%g %g\n",0,0 printf "%g %g\n",-r*cos(phi/180*pi),-y0 printf "%g %g\n",-r,-y0 printf "e\n" printf "#\n" printf "set trange [%g:%g]\n",(270-theta)/180*pi,(270+theta)/180*pi printf "plot \\\n" printf "r2*cos(t),r2*sin(t) with lines linewidth 1 linetype 1 notitle, \\\n" printf "(r2+0.1)*cos(t),(r2+0.1)*sin(t) with lines linewidth 1 linetype 1 notitle\n" printf "#\n" printf "set trange [%g:%g]\n",(0-phi)/180*pi,(0+phi)/180*pi printf "plot r3*cos(t),r3*sin(t) with lines linewidth 1 linetype 1 notitle\n" printf "#\n" printf "set trange [%g:%g]\n",(180-phi)/180*pi,(180+phi)/180*pi printf "plot r3*cos(t),r3*sin(t) with lines linewidth 1 linetype 1 notitle\n" printf "unset multiplot\n" printf "q\n" }