// Last edited on 2009-07-24 17:17:52 by stolfilocal // Processed by remove-cam-lights background{ color rgb < 0.8, 0.8, 0.8 > } #declare textura1 = texture { pigment { color rgb < 0.9, 0.9, 0.9 > filter 0} finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #macro folha() union { difference { object { sphere{ <3 ,0 ,0>,2 texture {textura1} } } object { sphere{ <3 ,0 ,0>,1 texture {textura1} } } object { box { <-5,0,-5>, <5,4,5> texture { textura1 } } } } object { box { <0,0,-1>, <2,-1,1> texture { textura1 } } } } #end #macro B1(alfa) #declare tamanhobraco=4; union { object { cylinder { < 0, 0, 0 >, < tamanhobraco, 0, 0 >, 1 texture {textura1} } } object { cylinder { < 0, 0, -1 >, < 0, 0, 1 >, 1 texture {textura1} } translate } object{ folha() rotate<0,0,alfa> translate } } #end #macro B2(alfa,beta) #declare tamanhobraco=4; union { object { cylinder { < 0, 0, 0 >, < tamanhobraco, 0, 0 >, 1 texture {textura1} } } object { cylinder { < 0, 0, -1 >, < 0, 0, 1 >, 1 texture {textura1} } translate } object{ B1(alfa) rotate<0,0,beta> translate } } #end #macro B3(alfa,beta,gama) #declare tamanhobraco=3; union { difference { object { cylinder { < 0, 0, -4 >, < 0, 0, 4 >, tamanhobraco texture {textura1} } } object { cylinder { < 0, 0, -10 >, < 0, 0, 10 >, tamanhobraco-1 texture {textura1} } } } object{ B2(alfa,beta) translate } rotate<0,0,gama> } #end #macro B4(alfa,beta,gama,delta) #declare tamanhobraco=10; union { object { cylinder { < 0, 0, -tamanhobraco >, < 0, 0, tamanhobraco >, 1 texture {textura1} } } object { B3(alfa,beta,gama) translate<0,0,delta> } difference { object { cylinder { < -2, 0, tamanhobraco+8 >, < 2, 0, tamanhobraco+8 >, 3 texture {textura1} } } object { cylinder { < -6, 0, tamanhobraco+8 >, < 6, 0, tamanhobraco+8 >, 2 texture {textura1} } } } difference { object { cylinder { < -2, 0, -tamanhobraco-8 >, < 2, 0, -tamanhobraco-8 >, 3 texture {textura1} } } object { cylinder { < -6, 0, -tamanhobraco-8 >, < 6, 0, -tamanhobraco-8 >, 2 texture {textura1} } } } } #end #macro B5(alfa,beta,gama,delta,teta) #declare distanciabraco=11; #declare tamanhobraco=10; union { object { cylinder { < -tamanhobraco, 0, -distanciabraco >, < tamanhobraco, 0, -distanciabraco >, 1 texture {textura1} } } object { cylinder { < -tamanhobraco, 0, distanciabraco >, < tamanhobraco, 0, distanciabraco >, 1 texture {textura1} } } object { cylinder { < -tamanhobraco+1,0,-distanciabraco >, < -tamanhobraco+1,-4,-distanciabraco> 1 texture {textura1} } } object { cylinder { < tamanhobraco-1,0,-distanciabraco >, < tamanhobraco-1,-4,-distanciabraco> 1 texture {textura1} } } object { cylinder { < -tamanhobraco+1,0,distanciabraco >, < -tamanhobraco+1,-4,distanciabraco> 1 texture {textura1} } } object { cylinder { < tamanhobraco-1,0,distanciabraco >, < tamanhobraco-1,-4,distanciabraco> 1 texture {textura1} } } object { B4(alfa,beta,gama,delta) translate } } #end #declare alfa=45; #declare beta=-90; #declare gama=30; #declare delta=2; #declare teta=0; #declare ArrayTeta = array[20]; #declare ArrayTeta[0] = -4; #declare ArrayTeta[1] = -3; #declare ArrayTeta[2] = -2; #declare ArrayTeta[3] = -1; #declare ArrayTeta[4] = -0; #declare ArrayTeta[5] = 1; #declare ArrayTeta[6] = 2; #declare ArrayTeta[7] = 3; #declare ArrayTeta[8] = 4; #declare ArrayTeta[9] = 4; #declare ArrayTeta[10] = 3; #declare ArrayTeta[11] = 2; #declare ArrayTeta[12] = 1; #declare ArrayTeta[13] = 0; #declare ArrayTeta[14] = 0; #declare ArrayTeta[15] = -1; #declare ArrayTeta[16] = -2; #declare ArrayTeta[17] = -3; #declare ArrayTeta[18] = -4; #declare ArrayTeta[19] = -4; #declare ArrayBeta = array[20]; #declare ArrayBeta[0] = -90; #declare ArrayBeta[1] = -85; #declare ArrayBeta[2] = -75; #declare ArrayBeta[3] = -70; #declare ArrayBeta[4] = -60; #declare ArrayBeta[5] = -55; #declare ArrayBeta[6] = -50; #declare ArrayBeta[7] = -45; #declare ArrayBeta[8] = -45; #declare ArrayBeta[9] = -35; #declare ArrayBeta[10] = -45; #declare ArrayBeta[11] = -50; #declare ArrayBeta[12] = -55; #declare ArrayBeta[13] = -60; #declare ArrayBeta[14] = -65; #declare ArrayBeta[15] = -70; #declare ArrayBeta[16] = -75; #declare ArrayBeta[17] = -80; #declare ArrayBeta[18] = -85; #declare ArrayBeta[19] = -90; #declare ArrayAlfa = array[20]; #declare ArrayAlfa[0] = 45; #declare ArrayAlfa[1] = 40; #declare ArrayAlfa[2] = 35; #declare ArrayAlfa[3] = 30; #declare ArrayAlfa[4] = 25; #declare ArrayAlfa[5] = 20; #declare ArrayAlfa[6] = 15; #declare ArrayAlfa[7] = 10; #declare ArrayAlfa[8] = 5; #declare ArrayAlfa[9] = 0; #declare ArrayAlfa[10] = 0; #declare ArrayAlfa[11] = 5; #declare ArrayAlfa[12] = 10; #declare ArrayAlfa[13] = 15; #declare ArrayAlfa[14] = 20; #declare ArrayAlfa[15] = 25; #declare ArrayAlfa[16] = 30; #declare ArrayAlfa[17] = 35; #declare ArrayAlfa[18] = 40; #declare ArrayAlfa[19] = 45; #declare nh = 5; #declare nv = 4; #declare nquadros = nh * nv; #declare cini = 0.0; #declare cfim = 1.0; #declare ck = cini; #declare iv = 0; #declare cpasso = (cfim-cini)/(nquadros-0.9999); #declare ipasso = 0; #while (iv < nv) #declare ih=0; #while (ih < nh) object { B5(ArrayAlfa[ipasso],ArrayBeta[ipasso],gama,delta,ArrayTeta[ipasso]) translate<(ih+0.5)/nh*-150,(iv+0.5)/nv*-150,0> } #declare ck = ck + cpasso; #declare ih = ih + 1; #declare ipasso = ipasso + 1; #end #declare iv = iv + 1; #end // Original camera parameters: // #local cam_ctr = <-70.00,-70.00,0.00> // #local cam_vec = (<-70.00,-70.00,150>-<-70.00,-70.00,0.00>) // #local cam_sky = (1*y) #include "camlight.inc" camlight(<-75.00,-75.00,0.00>,<4,4,10>,250.0,y,1.0)