// Last edited on 2003-04-12 07:55:43 by stolfi #include "colors.inc" #declare ctr = < 9.3, 2, 0 >; // #declare cam = < -5.3, 2, -15 >; #declare cam = < -15.3, 2, -5 >; camera { location ctr + 1.2*cam right 1.2*x up 0.4*y look_at ctr } light_source { 20*(vrotate(cam, -20*y) + 5*y) color 1.2*White } background {White} #declare i=0; #declare j=0; #declare k=0; #declare estante = box {< 1, 1, -3>,<3, 4,2>} #declare g= seed (123456); #declare r = 1*rand(g); #declare bola = sphere {<1,1,-2>,r} #declare anel = torus{r,r/3} #declare luneta= cylinder{<1,1,1>,<1.5,1,1.8>,r*0.5} #declare caixa= box{<1.1,1,-3>,<1.3,1.5,-2.5>} #declare pratileira= box{<0.9,1.3,-4>,<1.8,2.1,3>} #while (i<=5) #if (mod(i,2)!=0) union{ difference{ object{estante translate <i*2+i, 0,0> pigment{Blue}} object{pratileira translate <i*2+i, 0.7,0>pigment{White}} object{pratileira translate <i*2+i+1.3, 0.7,0>pigment{White}} object{pratileira translate <i*2+i, 1.7,0>pigment{White}} object{pratileira translate <i*2+i+1.3,1.7,0>pigment{White}} } #while (j<=i) object{bola translate <i*2+i, 1.6,j-3> pigment {color rgb <rand(g)*1,0,0>}} object{bola translate <i*2+i+1.2, 1.6,j-3> pigment {color rgb <rand(g)*1,0,0>}} object{caixa translate <i*2+i, 2.2,j-3> pigment {color rgb <0,3*rand(g),0>}} object{caixa translate <i*2+i+1.2,2.2,j-3>pigment {color rgb <0,3*rand(g),0>}} #declare j=j+1; #end } #else union{ difference{ object{estante translate <i*2+i, 0,0> pigment{Green}} object{pratileira translate <i*2+i, 0.7,0>pigment{White}} object{pratileira translate <i*2+i+1.3, 0.7,0>pigment{White}} object{pratileira translate <i*2+i, 1.7,0>pigment{White}} object{pratileira translate <i*2+i+1.3,1.7,0>pigment{White}} } # while(k<=i) object{anel translate <i*2+i+1, 2.2,k-2.5> pigment {color rgb <0,rand(g)*2-0.5,rand(g)*1>}} object{anel translate <i*2+i+2.5,2.2,k-2.5> pigment {color rgb <0,rand(g)*2-0.5,rand(g)*1>}} object{luneta translate <i*2+i, 2.7,k-3.3> pigment {color rgb <rand(g)*1,2*rand(g)-0.3,0>}} object{luneta translate <i*2+i+1.2,2.7,k-3.3> pigment {color rgb <rand(g)*1,2*rand(g)-0.3,0>}} #declare k=k+1; #end } #end #declare i=i+1; #end