// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #include "eixos.inc" #include "textures.inc" #declare eix = cylinder{ <0, 0, 0>, <0, 0, 1>, 0.08 texture{Tan_Wood} } #declare pin = torus{ 0.15, 0.08 rotate 90*x } #declare valor = array[4]; #declare valor[0] = (1-clock)*1 + clock*7; #declare valor[1] = (1-clock)*2 + clock*8; #declare valor[2] = (1-clock)*3 + clock*9; #declare valor[3] = (1-clock)*4 + clock*10; #declare valor2 = array[5]; #declare valor2[0] = (1-clock)*5 + clock*11; #declare valor2[1] = (1-clock)*6 + clock*12; #declare valor2[2] = (1-clock)*7 + clock*13; #declare valor2[3] = (1-clock)*8 + clock*14; #declare valor2[4] = (1-clock)*9 + clock*15; #declare roleta = seed(417); #macro bit(pos, defeito) #if (defeito = 1) union{ object{eix} object{pin translate<0, 0, 0.5> texture{White_Marble}} } #else union{ object{eix} object{pin translate<0, 0, ((0.75*pos) + 0.125)> texture{Jade}} } #end #end #macro fileira(n, valor, prob) union{ #local i = n; #local r = int(valor); #local f = valor - r; #while(i > 0) #local vb = mod(r, 2); #local def = (rand(roleta) } #local f=0; #else object{bit(1-f, def) translate<0, i*0.5, 0>} #end #local r = int(r/2); #local i = i -1; #end difference{ box {<-0.25, 0, -0.25> <0.25, (n+1)*0.5, 1.25> texture{Tan_Wood}} box {<-0.5, 0.25, 0> <0.5, ((n+1)*0.5)-0.25, 1>} } } #end #macro abaco(m, n, valores, prob) union{ #local j = 0; #while(j < m) object{fileira(n, valores[j], prob) translate<0, 0, j*1.25>} #local j = j + 1; #end } #end object{abaco(4, 4, valor, 0.05)} object{abaco(5, 5, valor2, 0.1) translate<-0, -4.5, 0>} #include "camlight.inc" #declare centro_cena = < 0.00, -1.00, 3.00 >; #declare raio_cena = 7.0; #declare dir_camera = < 20, (1-clock)*(-10) + clock*10, 5 >; #declare dist_camera = 20.00; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)