// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #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_vermelho = texture{ pigment{ color rgb < 1, 0, 0 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.85, 0.30 > } finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > ambient 0.1 } } #declare tx_vidro = texture{ pigment{ color rgb < 0.85, 0.95, 1.00 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.10, 0.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #declare din = box{ <0,0,0>, <0.2,0.5,4> texture{ tx_fosca } } #declare NQ=6; #declare cotoe = array [NQ]; #declare cotoe [0] = 0; #declare cotoe [1] = 30; #declare cotoe [2] = 45; #declare cotoe [3] = 30; #declare cotoe [4] = 20; #declare cotoe [5] = 0; #declare cotod = array [NQ]; #declare cotod [0] = 0; #declare cotod [1] = 30; #declare cotod [2] = 45; #declare cotod [3] = 30; #declare cotod [4] = 20; #declare cotod [5] = 0; #declare ombroe = array [NQ]; #declare ombroe [0] = 0; #declare ombroe [1] = 30; #declare ombroe [2] = 45; #declare ombroe [3] = 30; #declare ombroe [4] = 20; #declare ombroe [5] = 0; #declare ombrod = array [NQ]; #declare ombrod [0] = 0; #declare ombrod [1] = 30; #declare ombrod [2] = 45; #declare ombrod [3] = 30; #declare ombrod [4] = 20; #declare ombrod [5] = 0; #declare virilhae = array [NQ]; #declare virilhae [0] = 0; #declare virilhae [1] = 30; #declare virilhae [2] = 45; #declare virilhae [3] = 30; #declare virilhae [4] = 20; #declare virilhae [5] = 0; #declare virilhad = array [NQ]; #declare virilhad [0] = 0; #declare virilhad [1] = 30; #declare virilhad [2] = 45; #declare virilhad [3] = 30; #declare virilhad [4] = 20; #declare virilhad [5] = 0; #declare joelhoe = array [NQ]; #declare joelhoe [0] = 0; #declare joelhoe [1] = 30; #declare joelhoe [2] = 45; #declare joelhoe [3] = 30; #declare joelhoe [4] = 20; #declare joelhoe [5] = 0; #declare joelhod = array [NQ]; #declare joelhod [0] = 0; #declare joelhod [1] = 30; #declare joelhod [2] = 45; #declare joelhod [3] = 30; #declare joelhod [4] = 20; #declare joelhod [5] = 0; #declare tornozeloe = array [NQ]; #declare tornozeloe [0] = 0; #declare tornozeloe [1] = 30; #declare tornozeloe [2] = 45; #declare tornozeloe [3] = 30; #declare tornozeloe [4] = 20; #declare tornozeloe [5] = 0; #declare tornozelod = array [NQ]; #declare tornozelod [0] = 0; #declare tornozelod [1] = 30; #declare tornozelod [2] = 45; #declare tornozelod [3] = 30; #declare tornozelod [4] = 20; #declare tornozelod [5] = 0; #declare fq = array [NQ]; #declare fq [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; #macro cabeca () union{ sphere{ < 0,0,5 >, 2 texture{ tx_plastico }} sphere{ < 1.4,-1,6.5 >, 0.2 texture{ tx_plastico }} sphere{ < 1.4,1,6.5 >, 0.2 texture{ tx_plastico } } sphere{ < 1.5,0,5 >, 0.3 texture{ tx_plastico }} cone { < 0,-1,6.2 >, 0.5, < 0,-1,10 >, 0.2 texture{ tx_plastico }} cone { < 0,1,6.2 >, 0.5, < 0,1,10 >, 0.2 texture{ tx_plastico }} box{ < 2.1,-1,5 >, < 0, 1, 5.1 > texture{ tx_vermelho } } } #end #macro corpo () union{ sphere{ < 0,0,0 >, 2 texture{ tx_plastico }} torus {3,2 texture{ tx_vermelho }} } #end #macro braco () union{ cylinder{ < 0,0,0 >,< 0,3,0 > 0.4 texture{ tx_fosca }} } #end #macro antbraco () union{ cylinder{ < 0,0,0 >,< 0,2,0 > 0.4 texture{ tx_vermelho }} } #end #macro coxa () union{ cylinder{ < 0,0,0 >,< 0,0,-3 > 0.5 texture{ tx_fosca }} } #end #macro canela () union{ cylinder{ < 0,0,0 >,< 0,0,-1.6 > 0.5 texture{ tx_vermelho }} cylinder{ < 0,0,-1.5 >,< 0,0,-2.55 > 0.55 texture{ tx_plastico }} } #end #macro ped () union{ cylinder{ < 0,0,0 >,< 0,2,0 > 0.55 texture{ tx_plastico }} } #end #macro subperna (a1) union{ object { ped() rotate translate < 0,-0.2,-2.55> } object { canela() } } #end #macro perna (a1, a2) union{ object { subperna(a1) rotate <-a2,0,0>translate < 0,0,-2.5> } object { coxa() } } #end #macro subbraco (a4) union{ object { antbraco() rotate translate < 0,2.8,0> } object { braco() } } #end #macro boneco (a1, a2, a3, a4, a5, a6, a7, a8, a9, a10) union{ object { perna(a1,a2) rotate translate < 0,2,-4> } object { perna(a6,a7) scale <1,-1,1> rotate <-a8,0,0> translate < 0,-2,-4> } object { cabeca() } object { corpo() rotate <0,0,90> } object { subbraco(a4) rotate translate < 0,3,1> } object { subbraco(a9) scale <1,-1,1> rotate <-a10,0,0> translate < 0,-3,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 quadro_anterior (fase) #local i=0; #while (i< (NQ-1)) #if ((fq[i]<=fase) & (fq[i+1]>=fase)) #local resp=i; #end #local i = i+1; #end resp #end #macro coelho_danc (fase) #local i=quadro_anterior (fase); #local jje = interpola (fq[i], joelhoe[i],fq[i+1], joelhoe[i+1],fase); #local jjd = interpola (fq[i], joelhod[i],fq[i+1], joelhod[i+1],fase); #local ttd = interpola (fq[i], tornozelod[i],fq[i+1], tornozelod[i+1],fase); #local tte = interpola (fq[i], tornozeloe[i],fq[i+1], tornozeloe[i+1],fase); #local cce = interpola (fq[i], cotoe[i],fq[i+1], cotoe[i+1],fase); #local ccd = interpola (fq[i], cotod[i],fq[i+1], cotod[i+1],fase); #local ooe = interpola (fq[i], ombroe[i],fq[i+1], ombroe[i+1],fase); #local ood = interpola (fq[i], ombrod[i],fq[i+1], ombrod[i+1],fase); #local vve = interpola (fq[i], virilhae[i],fq[i+1], virilhae[i+1],fase); #local vvd = interpola (fq[i], virilhad[i],fq[i+1], virilhad[i+1],fase); object {boneco (ttd,jjd,vvd,ccd,ood,tte,jje,vve,cce,ooe)} #end #include "eixos.inc" union{ object{ eixos(3.00) } object {coelho_danc(clock)} } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 0.00 >; #declare raio_cena = 30.0; #declare dir_camera = < 1, 0, 0 >; #declare dist_camera = 30.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)