// SHADOW / Net '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, 25, -10> angle 90 look_at <1, 9.5, 0> } light_source { <0, 1000, -500> color rgb <1,1,1> } light_source { <0, 70, 100> color rgb <1,1,1> } #declare R1 = seed(20); #declare Nxm = 130; #declare Ntm = 45; #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] = 0; #declare Zp[Nx] = 20; #declare Xr[Nx] = 90; #declare Yr[Nx] = 360*rand(R1); #declare X1[Nx] = 0; #declare Y1[Nx] = 1; #declare Z1[Nx] = 0; #declare X0[Nx] = 0; #declare Y0[Nx] = 0; #declare Z0[Nx] = 0; #declare Nx = Nx+1; #end #declare R = 0.2; #declare Nt = 0; #while (Nt < Ntm) #declare Nx = 0; #while (Nx < Nxm) #declare Yr[Nx] = Yr[Nx]+15*(rand(R1)-0.5); #if(Nt > 0) union { cylinder { , , R } sphere { R } pigment { color rgb <0, 0, 0.5> } finish { ambient 0.1 phong 0.3 reflection 5 } 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 plane { y, 5 pigment { color rgbt <0, 0, 1, 1> } finish { ambient 0 phong 0.8 reflection 1 } no_shadow } plane { -y, 5 pigment { color rgbt <0, 0, 1, 1> } finish { ambient 0 phong 0.8 reflection 1 } no_shadow }