// Last edited on 2003-12-09 02:40:24 by stolfi // Exemplo de arquivo de descricao de cena para POV-ray // ====================================================================== #declare ctr = < 0.00, 0.00, 1.00 >; #declare camDir = vrotate(< -20.00, 18.00, 4.50 >, 40*clock*z); camera { location ctr + 1.25*camDir right -1.00*x up 0.75*y sky z look_at ctr } // ====================================================================== // FONTES DE LUZ light_source { 100 * < -2.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 { 100 * < -2.0, -1.0, 3.0 > // Posição da lâmpada. color rgb 0.6 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } #include "colors.inc" // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb <0.20, 0.25, 0.30> } plane{ z, -6.6 texture{ pigment{ color rgb <0.7,0.6,0.5> } finish{ diffuse 0.7 ambient 0.3 } } } cylinder { -7*z, -6.5*z, 20 texture{ pigment{ radial frequency 9 color_map{ [ 0.0 color rgb <0.7,0.6,0.5> ] [ 0.5 color rgb <0.7,0.6,0.5> ] [ 0.5 color rgb <0.6,0.5,0.2> ] [ 1.0 color rgb <0.6,0.5,0.2> ] } rotate 90*x } finish{ diffuse 0.7 ambient 0.3 } } } #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 { Turquoise } } #declare angulo = angulo + angulo_passo; #declare i = i + 1; #end } // patas // Corpo #declare corpo = sphere { <0, 0, 0>, 6 pigment { Green } finish { ambient 0.05 diffuse 0.05 reflection 0.3*Green specular 0.20 roughness 0.05 metallic } } // Cabeca #declare cabeca = sphere { <0, 0, 8>, 2 pigment { Brown } finish { ambient 0.05 diffuse 0.05 reflection 0.3*Brown 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 }