// Last edited on DATE TIME by USER // Processed by remove-cam-lights #declare tx_corpo = texture { pigment { color rgb < 1.00, 0.80, 0.10 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tx_bacia = texture { pigment { color rgb < 0.50, 0.50, 0.80 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tx_chao = texture { pigment { checker color rgb < 0.30, 0.80, 0.20 >, color rgb <0.7, 0.4, 0.9> scale 2.5} finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare chao = box{ < 10, 500, -17>, < -10, -500, -16 > texture{tx_chao} } #macro pe() cylinder{ < 0, 0, 0 >, < 0, 3, 0 > 0.5 texture{tx_bacia} } #end #macro anteperna(teta) union { cylinder{ < 0, 0, 0 >, < 0, 0, -6 > 0.5 texture{tx_bacia} } sphere{ < 0, 0, -6 > 0.5 texture{tx_corpo} } object {pe() rotate teta*x translate -6*z} } #end #macro perna(teta, alfa) union { cylinder{ < 0, 0, 0 >, < 0, 6, 0 > 0.5 texture{tx_bacia} } sphere{ < 0, 6, 0 > 0.5 texture{tx_corpo} } object {anteperna(teta) rotate alfa*x translate 6*y} } #end #macro corpo (teta, alfa, fi) union { sphere{ < 0, 0, 0 > 4 texture{tx_corpo} } cylinder { < 0, 0, -8 >, < 0, 0, 8 > 0.5 texture{tx_bacia} } cylinder { < 0, 8, 0 >, < 0, -8, 0 > 0.5 texture{tx_bacia} } cylinder{ < 6, 0, -3 >, < -6, 0, -3 > 0.5 texture{tx_bacia} } sphere{ < 6, 0, -3 > 0.5 texture{tx_corpo} } sphere{ < -6, 0, -3 > 0.5 texture{tx_corpo} } object {perna(teta, alfa) rotate -1*fi*x translate <6, 0, -3>} object {perna(teta, alfa) rotate -1*fi*x translate <-6, 0, -3>} } #end #macro interpola (ta, va, tb, vb, tt) #local s= (tt-ta)/(tb-ta); ((1-s)*va+s*vb) #end #declare teta0 = 0; #declare teta1 = 50; #declare alfa0 = 70; #declare alfa1 = -40; #declare fi0 = 70; #declare fi1 = 10; #declare altura0 = 0; #declare altura1 = -7; #declare altura2 = 10; #macro armacao(fase) #if (fase <= 0.5) #declare teta = interpola (0, teta0, 0.5, teta1, fase); #declare alfa = interpola (0, alfa0, 0.5, alfa1, fase); #declare fi = interpola (0, fi0, 0.5, fi1, fase); #declare altura = interpola (0, altura0, 0.5, altura1, fase); #end #if (fase > 0.5) #declare teta = interpola (0.5, teta1, 1, teta0, fase); #declare alfa = interpola (0.5, alfa1, 1, alfa0, fase); #declare fi = interpola (0.5, fi1, 1, fi0, fase); #declare altura = interpola (0.5, altura1, 1, altura0, fase); #end object {corpo (teta, alfa, fi) translate <0,0, altura>} #end #macro voo(h, fase, rotaciona, eixo) #declare teta = teta0; #declare alfa = alfa0; #declare fi = fi0; #if (fase <= 0.5) #declare altura = interpola (0, altura0, 0.5, h, fase); #end #if (fase > 0.5) #declare altura = interpola (0.5, h, 1, altura0, fase); #end object {corpo (teta, alfa, fi) #if (eixo = 1) rotate rotaciona*z #end #if (eixo = 0 ) rotate rotaciona*x #end translate <0,0, altura> } #end #macro vooGeral(h, p, q, fase, rotaciona, eixo) #local r= interpola(0,p,1,q,fase); object { voo(h, fase, rotaciona, eixo) translate r } #end #macro armacaoGeral(p, fase) object { armacao(fase) translate p } #end background{ color rgb < 1, 1, 1 > } #macro quadro (tt) #local t0 = 0.000; #local t1 = 0.150; #local t2 = 0.300; #local t3 = 0.450; #local t4 = 0.700; #local t5 = 0.850; #local t6 = 1.000; #local A = <0,0,0>; #local B = <0,10,0>; #local C = <0,15,0>; #local D = <0,25,0>; union { #if ((tt >= t0) & (tt <= t1)) #local fase = interpola(t0, 0, t1, 1, tt); object {armacaoGeral(A, fase)} #end #if ((tt >= t1) & (tt <= t2)) #local fase = interpola(t1, 0, t2, 1, tt); #local rota = interpola(t1, 0, t2, 360, tt); object {vooGeral(3, A, B, fase, rota, 1)} #end #if ((tt >= t2) & (tt <= t3)) #local fase = interpola(t2, 0, t3, 1, tt); object {armacaoGeral(B, fase)} #end #if ((tt >= t3) & (tt <= t4)) #local fase = interpola(t3, 0, t4, 1, tt); #local rota = interpola(t3, 0, t4, 720, tt); object {vooGeral(15, B, C, fase, rota, 0)} #end #if ((tt >= t4) & (tt <= t5)) #local fase = interpola(t4, 0, t5, 1, tt); object {armacaoGeral(C, fase)} #end #if ((tt >= t5) & (tt <= t6)) #local fase = interpola(t5, 0, t6, 1, tt); #local rota = interpola(t5, 0, t6, 360, tt); object {vooGeral(10, C, D, fase, rota, 0)} #end object {chao translate A} } #end object{quadro(clock)} #include "camlight.inc" #declare cena = interpola(0, <30.00, 30.00, 4.00>, 1,<30.00, 55.00, 4.00>, clock); #declare centro_cena = cena; #declare raio_cena = 14.0; #declare dir_camera = < 3, 3, 0.5 >; #declare dist_camera = 16.0; #declare intens_luz = 1.50; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)