// SHADOW / Feelers '01.10 // By Tsutomu HIGO E-mail: nj2t-hg@asahi-net.or.jp #version 3.1; global_settings { max_trace_level 4 assumed_gamma 2.2 } camera { location <0, 35, -50> angle 56 look_at <-1, 42, 0> } light_source { <0, -10, -50> color rgb <0.5, 0.5, 2> } light_source { <0, 650, -500> color rgb <3, 0.5, 0.5> } #declare R1 = seed(14); #declare Nxm = 150; #declare Ntm = 50; #declare Xp = array[Nxm] #declare Yp = array[Nxm] #declare Zp = array[Nxm] #declare Xr = array[Nxm] #declare Yr = array[Nxm] #declare X1 = array[Nxm] #declare Y1 = array[Nxm] #declare Z1 = array[Nxm] #declare X0 = array[Nxm] #declare Y0 = array[Nxm] #declare Z0 = array[Nxm] #macro Henkan(Xi, Yi, Zi, Xo, Yo, Zo) #declare Xo = Xi; #declare Yo = Yi; #declare Zo = Zi; #end #declare Nx = 0; #while (Nx < Nxm) #declare Xp[Nx] = 0; #declare Yp[Nx] = 8; #declare Zp[Nx] = 0; #declare Xr[Nx] = 20*rand(R1)+70; #declare Yr[Nx] = 360*rand(R1); #declare X1[Nx] = 0; #declare Y1[Nx] = 0; #declare Z1[Nx] = 0; #declare X0[Nx] = 0; #declare Y0[Nx] = 0; #declare Z0[Nx] = 0; #declare Nx = Nx+1; #end #declare R = 0.3; #declare Nt = 0; #while (Nt < Ntm) #declare Nx =0; #while (Nx < Nxm) #declare Xr[Nx] = Xr[Nx]-16*(rand(R1)-0.4); #declare Yr[Nx] = Yr[Nx]+15*(rand(R1)-0.5); #if(Nt>0) union { cylinder { , , R } sphere { R } pigment { color rgb <0.8, 1, 0.3> } finish { ambient 0.3 phong 0.3 reflection 1 } scale 0.8 rotate y*130 no_shadow } #end Henkan(Xp[Nx], Yp[Nx], Zp[Nx], X0[Nx], Y0[Nx], Z0[Nx]) #declare Xp[Nx] = Xp[Nx]+sin(Xr[Nx]*pi/180)*sin(Yr[Nx]*pi/180); #declare Yp[Nx] = Yp[Nx]+cos(Xr[Nx]*pi/180); #declare Zp[Nx] = Zp[Nx]+sin(Xr[Nx]*pi/180)*cos(Yr[Nx]*pi/180); Henkan(Xp[Nx], Yp[Nx], Zp[Nx], X1[Nx], Y1[Nx], Z1[Nx]) #declare Nx = Nx+1; #end #declare Nt = Nt+1; #end sphere { <0,40,0> 70 pigment { color rgbt <0, 0, 1, 1> } finish { ambient 0 phong 0.8 reflection 0 } no_shadow }