// 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 tam_braco = 0.1; #declare braco_l = 1.0; #declare tronco_h = 1.5; #declare tronco_l = 0.3; #declare tam_pesc = 0.1; #declare raio_pesc = 0.1; #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 = 6; //Numero de quadros #declare BD = array[NQ]; #declare BD[0] = 90; #declare BD[1] = 90; #declare BD[2] = 0; #declare BD[3] = 90; #declare BD[4] = 90; #declare BD[5] = 90; #declare BE = array[NQ]; #declare BE[0] = 90; #declare BE[1] = 90; #declare BE[2] = 0; #declare BE[3] = 90; #declare BE[4] = 90; #declare BE[5] = 90; #declare PD = array[NQ]; #declare PD[0] = 0; #declare PD[1] = 0; #declare PD[2] = 0; #declare PD[3] = 45; #declare PD[4] = 0; #declare PD[5] = 0; #declare PE = array[NQ]; #declare PE[0] = 45; #declare PE[1] = 0; #declare PE[2] = 0; #declare PE[3] = 0; #declare PE[4] = 0; #declare PE[5] = 45; #declare fq = array[NQ]; #declare fq[0] = 0.0; #declare fq[1] = 0.2; #declare fq[2] = 0.4; #declare fq[3] = 0.6; #declare fq[4] = 0.8; #declare fq[5] = 1.0; #declare tx_plastico = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_bota = texture{ pigment{ color rgb < 0, 0, 0 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare braco = cylinder{ <0,0,0>, <0,0,-braco_l>, tam_braco texture{tx_plastico} } #declare anteb = cylinder{ <0,0,0>, <0,0,-anteb_l>, tam_braco texture{tx_plastico} } #declare mao = sphere{ <0,0,0>,1.5*tam_braco texture{tx_plastico} } #declare tronco = cylinder{ <0,0,0>, <0,0, tronco_h>, tronco_l texture{tx_plastico} } #declare cabeca = union{ cylinder{ <0,0,0>, <0,0,tam_pesc>, raio_pesc texture{tx_plastico} } sphere{ <0,0,cabeca_r+tam_pesc>,cabeca_r texture{tx_plastico} } } #declare perna = cone{ <0,0,0>, perna_r, <0,0,-perna_l>, perna_r texture{tx_plastico} } #declare antep = cone{ <0,0,0>, perna_r, <0,0,-antep_l>, perna_r texture {tx_bota} } #declare pe = box{ <0,-pe_w,0>, texture {tx_bota} } #macro antebraco(n) union{ object{anteb} object{mao 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} } #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>} object{bracoanteb(be2) rotate (-be1)*y translate<0,tronco_l,tronco_h>} object{bracoanteb(bd2) rotate (-bd1)*y translate<0,-tronco_l,tronco_h>} object{pernaantep(pe2,pe3) rotate (-pe1)*y translate<0,tronco_l,0>} object{pernaantep(pd2,pd3) rotate (-pd1)*y translate<0,-tronco_l,0>} } #end #macro busca (fase) #local i = 0; #while (fq[i] < fase) #local i = i + 1; #end (i-1) #end #macro interpola (f0, v0, f1, v1, f) #local ss = (f-f0)/(f1-f0); #local rr = 1-ss; (rr*v0+ss*v1); #end #macro boneco_dancando (fase) #local i = busca(fase); #local bd = interpola (fq[i], BD[i], fq[i+1],BD[i+1], fase); #local be = interpola (fq[i], BE[i], fq[i+1],BE[i+1], fase); #local pd = interpola (fq[i], PD[i], fq[i+1],PD[i+1], fase); #local pe = interpola (fq[i], PE[i], fq[i+1],PE[i+1], fase); object{troncocabeca(be,bd,0,0,pe,pd,0,0,0,0)} #end union{ object{ eixos(6.00) } object{boneco_dancando(clock)} } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #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)