// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2003-07-31 12:50:37 by stolfi // ====================================================================== // CÂMERA #include "colors.inc" camera { location <30,-8,4> // Posição do observador. right <-0.6,0,0> // Largura RELATIVA da imagem. up <0,0,0.8> // Altura RELATIVA da imagem. sky <0,0,1> // Qual direção é "para cima"? look_at <0,0,0> // Para onde a câmera está apontando. } // Nota: os parâmetros "right" e "up" devem ter a mesma proporção // que os parâmetros ${WIDTH} e ${HEIGHT} no Makefile. // ====================================================================== // FONTES DE LUZ light_source { 10 * < -50.0, -30.0, +50.0 > // Posição da lâmpada. color rgb 1.2 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < +50.0, -10.0, +10.0 > // Posição da lâmpada. color rgb 0.8 * < 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 velocidade = 5; #declare chao = plane { z,0 pigment {Green} } #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 } #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,-2> } 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 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 }