// Last edited on 2003-12-08 21:01:09 by stolfi // Exemplo de arquivo de descricao de cena para POV-ray // ====================================================================== #include "colors.inc" #declare velocidade = 5; #declare ctr = <3,0,0> + clock*; #declare camDir = <15,-20,20>; // sphere{ ctr, 1 texture{ pigment{ color rgb <1,0,1> } finish { ambient 0.6 diffuse 0.4 } } } camera { location ctr + 0.70*camDir right 0.80*x up 0.60*y sky z look_at ctr } // ====================================================================== // FONTES DE LUZ light_source { 10 * < +30.0, -70.0, +80.0 > // Posição da lâmpada. color rgb 0.7 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < +80.0, -10.0, +80.0 > // Posição da lâmpada. color rgb 0.5 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < +50.0, +10.0, +80.0 > // Posição da lâmpada. color rgb 0.6 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb < 0.75, 0.80, 0.85 > } #declare T = 1/5; #declare Zchao = -1.4; #declare chao = plane{ z, Zchao texture{ pigment{ checker color rgb <0.6,0.7,0.5>, color rgb <0.5,0.6,0.2> } finish{ diffuse 0.7 ambient 0.3 } scale 0.5*velocidade } } #declare pe_da_cama = cylinder { <0,0,1> <0,0,-1> 0.3 pigment { Brown } } #declare cama = union { box { <0,0,0> <5,6,1> pigment { White } } object { pe_da_cama translate <0,0,0> } object { pe_da_cama translate <5,0,0> } object { pe_da_cama translate <0,6,0> } object { pe_da_cama translate <5,6,0> } } #declare cabeca = sphere { <0,0,0> 0.8 pigment{ color rgb < 0.2,0.15,0.10 > } } #declare corpo = union { difference { sphere { <0,0,0> 2 } box { <-2,-2,0> <2,2,-2> } pigment { Red } } object { cabeca translate <2.4,0,0> } } #declare pata4 = cone { <0,0,0>, 0.1 <1,0,0>, 0 } // Aqui está a cena, finalmente: union{ #declare i = 0; #declare inversao = 1; #declare grupo = 0; object { cama translate <12,0,Zchao+1> } object { corpo translate clock* } #while(i < 7) #if (mod(clock+T*grupo/2,T) <= T/4) #declare alfa = 30 + 30*mod(clock+T*grupo/2,T)/T; #end #if (T/4 < mod(clock+T*grupo/2,T) & mod(clock+T*grupo/2,T) <= T/2) #declare alfa = 60 - 30*mod(clock+T*grupo/2,T)/T; #end #if (T/2 < mod(clock+T*grupo/2,T)) #declare alfa = 30; #end #if (mod(clock+T*grupo/2,T) <= T/2) #declare alfa2 = 40*mod(clock+T*grupo/2,T)/T; #else #declare alfa2 = 80 - 40*mod(clock+T*grupo/2,T)/T; #end #declare beta = alfa-120; #declare gama = -20; #declare delta = -10; #declare pata3 = union { cylinder { <0,0,0> <0,1,0> 0.1 } object { pata4 rotate delta*x translate <0,1,0> } } #declare pata2 = union { cylinder { <0,0,0> <0,1,0> 0.1 } object { pata3 rotate gama*x translate <0,1,0> } } #declare pata = union { cylinder { <0,0,0> <0,1,0> 0.1 } object { pata2 rotate beta*x translate <0,1,0> } } object { pata pigment{ color rgb < 0.60,0.25,0.10 > } scale inversao*<0,1,0> rotate inversao*alfa*x rotate -alfa2*z translate (clock* + 2*) } #declare i = i+1; #declare grupo = 1-grupo; #if (i = 3) #declare i = i+1; #declare inversao = -1; #end #end } object{chao}