// Last edited on 2003-12-08 20:24:34 by stolfi // Exemplo de arquivo de descricao de cena para POV-ray // ====================================================================== #declare ctr = < 2.00, -1.00, 2.00 >; #declare camDir = < -8.80, -6.80, 1.50 >; // sphere{ ctr, 0.8 texture{ pigment{ color rgb <1,0,1> } finish { ambient 0.6 diffuse 0.4 } } } camera { location ctr + 0.70*camDir right -1.00*x up 0.75*y sky z look_at ctr } light_source { 100*< -20.00, 0.00, 50 > // Posição da lâmpada. color rgb < 1.00, 1.00, 1.00 > // Intensidade e cor da luz. } light_source { 100*< 0.00, -20.00, 50 > // Posição da lâmpada. color rgb < 1.00, 1.00, 1.00 > // Intensidade e cor da luz. } // ====================================================================== // DESCRIÇÃO DA CENA background { color rgb < 0.98, 1.00, 0.75 > } #declare Semente = seed ( 12345 ); #declare clock0 = clock; #declare clock1 = mod(clock + 0.50, 1); #declare plano_xy = // z = 0 plane{ z,0 texture{ pigment{ checker color rgb <0.7,0.6,0.5>, color rgb <0.6,0.5,0.2> } finish{ diffuse 0.7 ambient 0.3 } scale 2 } } #declare aux = 1; #declare p3 = union { sphere { < 0.00, 0.00, 0.00 >, 0.10 pigment { color rgb } } cylinder { < 0.00, 0.10, 0.00 >, < 0.00, 0.4, 0.00>, 0.10 pigment { color rgb } } } #declare p2 = union { sphere { < 0.00, 0.00, 0.00 >, 0.10 pigment { color rgb } } cylinder { < 0.00, 0.10, 0.00 >, < 0.00, 0.5, 0.00>, 0.05 pigment { color rgb } } #declare delt = 0; object { p3 rotate < -delt, delt, 0> translate < 0.00, 0.50, 0.00> } } #declare p1 = union { sphere { < 0.00, 0.00, 0.00 >, 0.10 pigment { color rgb } } cylinder { < 0.00, 0.10, 0.00 >, < 0.00, 0.5, 0.00>, 0.05 pigment { color rgb } } #declare gama = 60; object { p2 rotate gama * x translate < 0.00, 0.50, 0.00> } } #declare perna = union { sphere { < 0.00, 0.00, 0.00 >, 0.10 pigment { color rgb } } cylinder { < 0.00, 0.10, 0.00 >, < 0.00, 0.60, 0.00>, 0.05 pigment { color rgb } } #declare beta0 = 45 * cos(2*pi*clock0); #declare beta1 = 45 * cos(2*pi*clock1); object { p1 #if (mod(aux,2)=0) rotate beta0 * y #else rotate beta1 * y #end translate < 0.00, 0.60, 0.00> } } #declare corpo = union { #declare L = 4; // comprimento corpo #declare PP = 3; // pares de pernas // cabeca sphere { < -0.40, 0.85, 0.4 >, 0.4 pigment { color rgb } } // corpo box { < 0.00, 0.00, 0.00>, < L, 1.90, 0.80> pigment { color rgb } } // pernas #while (aux <= PP) #declare alfa = 10 * abs(cos(2*pi*clock0)); object { perna scale < -1, -1, 1 > rotate -alfa * x translate < aux * ( L / ( PP + 1 ) ), 0.00, 0.80> } object { perna rotate alfa * x translate < aux * ( L / ( PP + 1 ) ), 1.90, 0.80> } #declare aux = aux + 1; #end } // Aqui está a cena, finalmente: union { object { plano_xy } object { corpo rotate 180 * x translate < 0.00, 0.00, 2.50 > } }