// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2003-07-31 12:50:37 by stolfi // ====================================================================== // CÂMERA camera { location < -30.00, 0.00, 6.00 > // Posição do observador. right -1.0*x // Largura RELATIVA da imagem. up 0.75*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 0.00, 0.00 > // 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 * < 1.0, 1.0, 3.0 > // Posição da lâmpada. color rgb 1.4 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 10 * < -1.0, -1.0, 3.0 > // Posição da lâmpada. color rgb 1.8 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } #include "colors.inc" // ====================================================================== // DESCRIÇÃO DA CENA plane { z, -6.5 pigment { Yellow } } #declare angulo = 0; #declare angulo_final = 359; #declare angulo_passo = 20; #declare a1a = 15; #declare a1b = 35; #declare a2a = 65; #declare a2b = 85; #declare a3a = 45; #declare a3b = 65; #declare a4a = 65; #declare a4b = 85; #declare dist_dedoa = 25; #declare dist_dedob = 45; #declare s = seed(48234234); #declare raio = 6; #declare tamanho_pata = 5; #declare tam_ante_pe = 4; #declare a4 = 65; #declare i = 1; #declare clocky = mod(clock*1.0,1); #declare clock0 = clocky; #declare clock1 = mod(clocky+0.5, 1); #declare patas = union { #while (angulo <= angulo_final) #if (mod(i,2) = 1) #declare clockp = clock0; #else #declare clockp = clock1; #end #declare dist_dedo = dist_dedoa+(dist_dedob-dist_dedoa)*rand(s); #if (clockp <= 0.25) #declare a0 = -10; #declare a1 = 25+(20*clockp*4); #declare a2 = 95-(30*clockp*4); #declare a3 = 45+(30*clockp*4); #else #if (clockp <= 0.50) #declare a0 = -10+(20*(clockp - 0.25)*4); #declare a1 = 45; #declare a2 = 65; #declare a3 = 75; #else #if (clockp <= 0.75) #declare a0 = 10; #declare a1 = 45-(20*(clockp - 0.50)*4); #declare a2 = 65+(30*(clockp - 0.50)*4); #declare a3 = 75-(30*(clockp - 0.50)*4); #else #if (clockp <= 1.00) #declare a0 = 10-(20*(clockp - 0.75)*4);; #declare a1 = 25; #declare a2 = 95; #declare a3 = 45; #end #end #end #end #declare pe = union { cylinder { < 0, 0, 0>, <0, 1.0, 0 >, 0.1 rotate dist_dedo*z rotate a4*(-x) } cylinder { < 0, 0, 0>, <0, 1.0, 0 >, 0.1 rotate a4*(-x) } cylinder { < 0, 0, 0>, <0, 1.0, 0 >, 0.1 rotate -dist_dedo*z rotate a4*(-x) } } #declare ante_pe = union { cylinder { <0, 0, 0>, <0, tam_ante_pe, 0>, 0.4 } sphere { <0, 0, 0>, 0.4 } object { pe translate <0, tam_ante_pe, 0> } rotate a3*(-x) } #declare ante_pata = union { cylinder { <0, 0, 0>, <0, tamanho_pata, 0>, 0.4 } sphere { <0, 0, 0>, 0.4 } object { ante_pe translate <0, tamanho_pata, 0> } rotate a2*(-x) } #declare pata = union { cylinder { <0, 0, 0>, <0, tamanho_pata, 0>, 0.4 } sphere { <0, 0, 0>, 0.4 } object { ante_pata translate <0, tamanho_pata, 0> } rotate a1*x rotate a0*z } object { pata translate <0, raio, 0> rotate angulo*z pigment { DarkTurquoise } } #declare angulo = angulo + angulo_passo; #declare i = i + 1; #end } // patas // Corpo #declare corpo = sphere { <0, 0, 0>, 6 pigment { DarkGreen } finish { ambient 0.05 diffuse 0.05 reflection 0.3*DarkGreen specular 0.20 roughness 0.05 metallic } } // Cabeca #declare cabeca = sphere { <0, 0, 8>, 2 pigment { DarkBrown } finish { ambient 0.05 diffuse 0.05 reflection 0.3*DarkBrown specular 0.20 roughness 0.05 metallic } } #if (clock1 <= 0.25) #declare ang = 0; #else #if (clock1 <= 0.50) #declare ang = (10*(clock1 - 0.25)*4); #else #if (clock1 <= 0.75) #declare ang = 10; #else #if (clock1 <= 1.00) #declare ang = 10 + (10*(clock1 - 0.75)*4); #end #end #end #end union { object { patas } object { corpo } object { cabeca } rotate ang*z }