#include "colors.inc" #include "math.inc" #include "golds.inc" #include "metals.inc" global_settings { assumed_gamma 1.0 ambient_light rgb <1,1,1> } #declare ltime =clock+0; //fillament #declare f_diam = .2; //diameter of filament "loop" #declare f_lead = 0.5; //length of filament "leads" #declare f_thck = .025; //diameter of filament wire #declare f_hght = .5; //height of filament coil #declare f_lps = 4.5; //remember to go extra half loop! #declare f_seg = 120; //#of segments to draw filament #declare f_dy=f_hght/f_seg; union{ cylinder{-f_lead*x-f_hght/2*y-f_diam/2*z,-f_hght/2*y-f_diam/2*z,f_thck} cylinder{-f_lead*x+f_hght/2*y+f_diam/2*z,+f_hght/2*y+f_diam/2*z,f_thck} #declare cyl_start=-f_hght/2*y-f_diam/2*z; #declare i=1; #while(i<=f_seg) #declare cyl_end=(-f_hght/2+f_dy*i)*y+f_diam/2*(-z*cos(2*pi*f_lps*i/f_seg)+x*sin(2*pi*f_lps*i/f_seg)); cylinder{cyl_start,cyl_end,f_thck} #declare cyl_start=cyl_end; #declare i=i+1; #end texture {pigment { color rgbt <1,1,0,0> } finish{ambient 1.0 diffuse 0}} } sphere{ 0,1 texture {pigment {color rgbf <1,1,1,1>}} hollow interior { media { emission color rgbt <.8, .8, .40,.1> scattering {5} intervals 2 samples 32 method 3 // aa_threshold 0.3 aa_level 5 density {spherical scale 1.0} } } scale (f_hght/2*y*.8+(f_diam/2+f_thck)*(x+z))*2.2 } //gun grid #declare ap_pos = 3*f_diam; //center of gun plates #declare ap_width =f_diam*3; //seperation of plates #declare ap_size = 1.5; //size if the plates #declare ap_ngrid =4 ; //number of grid lines in a plate #declare ap_thick =.02; //thickness of each plate #declare ap_ea = 10; //acceleration of electrons; #declare ap_gl= cylinder{-ap_size/2*y,ap_size/2*y,ap_thick/2 texture{T_Silver_1A } } #declare i=1; #declare ap_gr= union{ #while(i<=ap_ngrid) #declare ap_t=(i-1)*ap_size/(ap_ngrid-1)-ap_size/2; object{ap_gl translate z*ap_t} object{ap_gl rotate 90*x translate y*ap_t} #declare i=i+1; #end #declare ap_corner=.5*(ap_size*(y+z)+ap_thick*x*.2); box{-ap_corner,ap_corner texture {pigment { color rgbt <1,1,1,.95> } finish{ambient .80 diffuse 0}}} } object{ap_gr translate (ap_pos+ap_width/2)*x} object{ap_gr translate (ap_pos-ap_width/2)*x} //electron #declare e_size = .05; //diamter of an electron #declare e_speed_0=.5; //speed of electron coming off of filament #declare t_1a=(ap_pos-ap_width/2)/e_speed_0; //electron enters accelerator #declare e_speed_2=sqrt(e_speed_0*e_speed_0+2*ap_ea*ap_width); //final x-velocity #declare t_1b=(e_speed_2-e_speed_0)/ap_ea+t_1a; //electron leaves accelerator #macro e_xm(tt) #if (tt } finish{ambient 1.0 diffuse 0}} } #declare camera_scale=1; camera { // location <8, 15 , 15> location camera_scale*<0, 1 , -6> look_at angle 30/camera_scale }