// 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 anteb_l = 0.8; #declare braco_r = 0.1; #declare braco_l = 1.0; #declare tronco_h = 1.5; #declare tronco_l = 0.8; #declare tronco_w = 0.3; #declare cabeca_r = 0.3; #declare antep_l = 0.8; #declare perna_r = 0.1; #declare perna_l = 1.0; #declare pe_l = 0.5; #declare pe_w = 0.1; #declare pe_h = 0.1; #declare NQ=7; #declare bd1 = array[NQ]; #declare bd1[0] = 50; #declare bd1[1] = 15; #declare bd1[2] = -10; #declare bd1[3] = -40; #declare bd1[4] = bd1[2]; #declare bd1[5] = bd1[1]; #declare bd1[6] = bd1[0]; #declare be1 = array[NQ]; #declare be1[0] = bd1[3]; #declare be1[1] = bd1[2]; #declare be1[2] = bd1[1]; #declare be1[3] = bd1[0]; #declare be1[4] = be1[2]; #declare be1[5] = be1[1]; #declare be1[6] = be1[0]; #declare pd1 = array[NQ]; #declare pd1[0] = 0; #declare pd1[1] = 0; #declare pd1[2] = 45; #declare pd1[3] = 90; #declare pd1[4] = pd1[2]; #declare pd1[5] = pd1[1]; #declare pd1[6] = pd1[0]; #declare pe1 = array[NQ]; #declare pe1[0] = pd1[3]; #declare pe1[1] = pd1[2]; #declare pe1[2] = pd1[1]; #declare pe1[3] = pd1[0]; #declare pe1[4] = pe1[2]; #declare pe1[5] = pe1[1]; #declare pe1[6] = pe1[0]; #declare pd2 = array[NQ]; #declare pd2[0] = 0; #declare pd2[1] = 0; #declare pd2[2] = -45; #declare pd2[3] = 0; #declare pd2[4] = pd2[2]; #declare pd2[5] = pd2[1]; #declare pd2[6] = pd2[0]; #declare pe2 = array[NQ]; #declare pe2[0] = pd2[3]; #declare pe2[1] = pd2[2]; #declare pe2[2] = pd2[1]; #declare pe2[3] = pd2[0]; #declare pe2[4] = pe2[2]; #declare pe2[5] = pe2[1]; #declare pe2[6] = pe2[0]; #declare fq = array[NQ]; #declare fq[0] = 0.00; #declare fq[1] = 0.16; #declare fq[2] = 0.33; #declare fq[3] = 0.49; #declare fq[4] = 0.66; #declare fq[5] = 0.82; #declare fq[6] = 1.00; #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare braco = cone{ <0,0,0>, braco_r, <0,0,-braco_l>, braco_r texture{tx_fosca} } #declare anteb = cone{ <0,0,0>, braco_r, <0,0,-anteb_l>, braco_r texture{tx_fosca} } #declare mao = sphere{ <0,0,0>,1.5*braco_r texture{tx_fosca} } #declare tronco = box{ <-tronco_w/2,-tronco_l/2,0>, texture{tx_fosca} } #declare cabeca = sphere{ <0,0,0>,cabeca_r texture{tx_fosca} } #declare perna = cone{ <0,0,0>, perna_r, <0,0,-perna_l>, perna_r texture{tx_fosca} } #declare antep = cone{ <0,0,0>, perna_r, <0,0,-antep_l>, perna_r texture{tx_fosca} } #declare pe = box{ <0,-pe_w,0>, texture{tx_fosca} } #declare relogio = cone{ <0,-0.05,0>,0.5, <0,+0.05,0>,0.5 } #macro antebraco(n) union{ object{anteb} object{mao translate<0,0,-n>} object{relogio translate<0,0,-n>} } #end #macro bracoanteb(b2) union{ object{braco} object{antebraco(anteb_l) rotate (-b2)*y translate<0,0,-braco_l> } } #end #macro anteperna(p3) union{ object{antep} object{pe rotate (-p3)*y translate<0,0,-antep_l> } } #end #macro pernaantep(p2,p3) union{ object{perna} object{anteperna(p3) rotate(-p2)*y translate<0,0,-perna_l> } } #end #macro troncocabeca(be1,bd1,be2,bd2,pe1,pd1,pe2,pd2,pe3,pd3) union{ object{tronco} object{cabeca translate<0,0,tronco_h+cabeca_r>} object{bracoanteb(be2) rotate (-be1)*y translate<0,tronco_l/2,tronco_h>} object{bracoanteb(bd2) rotate (-bd1)*y translate<0,-tronco_l/2,tronco_h>} object{pernaantep(pe2,pe3) rotate (-pe1)*y translate<0,tronco_l/2,0>} object{pernaantep(pd2,pd3) rotate (-pd1)*y translate<0,-tronco_l/2,0>} } #end #macro interpola(f0,v0,f1,v1,f) #local ss = (f-f0)/(f1-f0); #local rr = 1-ss; (rr*v0+ss*v1) #end #macro q_anterior(fase) #local i=0; #while(fq[i]; #declare raio_cena = 7.0; #declare dir_camera = < 10.00, 10.00, 5.00 >; #declare dist_camera = 30.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)