// Last edited on DATE TIME by USER // Processed by remove-cam-lights #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 6.0; #declare dir_camera = < 14.00, 0, 4.00 >; #declare dist_camera = 16.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz) #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 } background{ color rgb < 0.75, 0.80, 0.85 > } #declare raio = 2.000; #macro interpole (ta, va, tb, vb, var) #local s = (var-ta)/(tb-ta); ((1-s)*va + s*vb) #end #macro corpo (teta, alfa, gama) union { box { < +1, 1, 0.3 >, < -1, -1, 0 > } object {perna ( alfa, gama) rotate teta*x translate <1,1,-0.25>} object {perna ( alfa, gama) rotate teta*x translate <1,-1,-0.25>} object {perna ( alfa, gama) rotate teta*x translate <-1,-1,-0.25>} object {perna (alfa, gama) rotate teta*x translate <-1,1,-0.25>} } #end #macro perna ( alfa, gama) union { sphere { < 0.00, 0.00, 0.0 >, 0.3 } cylinder { < 0, 0, 0 >, < 0, 0, -1 >, 0.2 } object{ anteperna ( gama) rotate alfa*x translate <0,0,-1>} } #end #macro anteperna (gama) union { sphere { < 0.00, 0.00, 0.0 >, 0.3 } cylinder { < 0, 0, 0 >, < 0, 0, -1 >, 0.2 } object{ pe () rotate gama*x translate <0,0,-1>} } #end #macro pe () union { sphere { < 0.00, 0.00, 0.2 >, 0.3 } cylinder { < 0, 0.5, 0.0 >, < 0, -0.5, 0.0 >, 0.2 } } #end #macro plataforma (disty, z1, z2) union { box { < 1.50, 1.50, z1>, < -1.50, -1.50, z2 > } translate <0,disty,0> } #end #macro armacaogeral (fase, ponto, altura) #declare fase0 = 0.00; #declare teta0 = 0.00; #declare alfa0 = 0.00; #declare gama0 = 0.00; #declare h0 = 0; #declare fase1 = 0.5; #declare teta1 = 45.0; #declare alfa1 = -90.0; #declare gama1 = 45.0; #declare h1 = -1; #declare fase2 = 1; #declare teta2 = 0.00; #declare alfa2 = 0.00; #declare gama2 = 0.0; #declare h2 = 0; #if ((fase >= fase0) & (fase <= fase1)) #declare teta = interpole(fase0, teta0, fase1, teta1, fase); #declare alfa = interpole(fase0, alfa0, fase1, alfa1, fase); #declare gama = interpole(fase0, gama0, fase1, gama1, fase); #declare h = interpole(fase0, h0, fase1, h1, fase); #end #if ((fase >= fase1) & (fase <= fase2)) #declare teta = interpole(fase1, teta1, fase2, teta2, fase); #declare alfa = interpole(fase1, alfa1, fase2, alfa2, fase); #declare gama = interpole(fase1, gama1, fase2, gama2, fase); #declare h = interpole(fase1, h1, fase2, h2, fase); #end corpo(teta, alfa, gama ) texture { tinta_A } translate ponto #end #macro voogeral (fase, p, q, z1,z2,z3) #declare fase2 = 0.00; #declare h2 = z1; #declare fase3 = 0.5; #declare h3 = z2; #declare fase4 = 1; #declare h4 = z3; #if ((fase >= fase2) & (fase <= fase3)) #declare h = interpole(fase2, h2, fase3, h3, fase); #end #if ((fase >= fase3) & (fase <= fase4)) #declare h = interpole(fase3, h3, fase4, h4, fase); #end corpo(0, 0, 0 ) #declare d = interpole(0, p, 1, q, fase); texture { tinta_A } translate d #end #macro quadro(tt) #declare tinta_A = texture { pigment { color rgb < 0.55 + 0.45, 0.80, 0.55 - 0.5 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare t0 = 0.000; #declare t1 = 0.150; #declare t2 = 0.5; #declare t3 = 0.65; #declare t4 = 1.000; #include "eixos.inc" union { #declare A = <0,-6,0>; #declare B = <0,0,3.2>; #declare C = <0,0,+6>; #if ((tt >= t0) & (tt <= t1)) #local fase = interpole(0,t0,1,t1,tt); object{armacaogeral(fase, A, 0)} #end #if ((tt >= t1) & (tt <= t2)) #local fase = interpole(0,t1,1,t2,tt); object {voogeral(fase, A, B, 0,5,3.2)} #end #if ((tt >= t2) & (tt <= t3)) #local fase = interpole(0,t2,1,t3,tt); object{armacaogeral(fase, 0, 3.2)} #end #if ((tt >= t3) & (tt <= t4)) #local fase = interpole(0,t3,1,t4,tt); object {voogeral(fase, B,C , 3.2,6,0)} #end } union { object{ eixos(3.00) } plataforma(-6, -2.2, -4.2) plataforma(0,0, -4.2) plataforma(+6, -2.2, -4.2) texture{ tx_xadrez } } #end quadro(clock)