// Last edited on 2003-12-07 14:10:09 by stolfi // Exemplo de arquivo de descricao de cena para POV-ray // ====================================================================== #declare ctr = < 2.00, 0.95, 1.00 >; #declare camDir = < -18.0, 10.0, 6.00 >; camera { location ctr + 0.33*camDir right -1.00*x up 0.75*y sky z look_at ctr } // ====================================================================== // FONTES DE LUZ light_source { 100*< 1.00, -1.00, 9.00 > // Posição da lâmpada. color rgb < 1.00, 1.00, 1.00 > // Intensidade e cor da luz. } light_source { 100*< 5.00, 4.00, 4.50 > // Posição da lâmpada. color rgb < 1.00, 1.00, 1.00 > // Intensidade e cor da luz. } light_source { 100*< 1.00, 5.00, 8.00 > // 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 plano_xy = // z = 0 plane { < 0, 0, 1 >, 0 } #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 = 30 + 20 * rand(Semente); 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 = 30 + 60 * rand(Semente); 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 beta = 50 + 40 * rand(Semente); object { p1 rotate beta * y 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.95, 0.4 >, 0.4 pigment { color rgb } } // corpo box { < 0.00, 0.00, 0.00>, < L, 1.90, 0.80> pigment { color rgb } } // pernas #declare aux = 1; #while (aux <= PP) #declare alfa = 50 + 50 * rand(Semente); object { perna scale < -1, -1, 1 > rotate -alfa * x translate < aux * ( L / ( PP + 1 ) ), -0.10, 0.80> } object { perna rotate alfa * x translate < aux * ( L / ( PP + 1 ) ), 2.00, 1.00> } #declare aux = aux + 1; #end } // Aqui está a cena, finalmente: union { object { plano_xy pigment { checker rgb < 0.10, 0.20, 0.30 >, < 0.30, 0.40, 0.50 > } } object { corpo } }