// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2003-09-04 15:25:26 by stolfi // ====================================================================== // CÂMERA /* camera { location 160 * < 1.00, 1.00, 1.00 > // Posição do observador. right -1.00*x // Largura RELATIVA da imagem. up 0.50*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 30.00, 0.0 > // Para onde a câmera está apontando. } */ camera { location 50 * < 1.00, 1.00, 1.00 > // Posição do observador. right -1.00*x // Largura RELATIVA da imagem. up 0.75*y // Altura RELATIVA da imagem. sky z // Qual direção é "para cima"? look_at < 0.00, 25.00, 15.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 * < +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, 0.00 > // Intensidade e corda luz. } light_source { 10 * < +50.0, +30.0, +10.0 > // Posição da lâmpada. color rgb 0.8 * < 1.00, 1.00, 0.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA background{ color rgb < 0.75, 0.80, 0.85 > } //background{ color rgb < 1.00, 1.00, 1.00 > } #declare tinta_cinza_escuro = texture { pigment { color rgb < 0.30, 0.30, 0.30 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_eixo = texture { pigment { color rgb < 0.90, 0.10, 0.50 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_lei = texture { pigment { color rgb < 0.20, 0.90, 0.70 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_bandido = texture { pigment { color rgb < 0.10, 0.20, 0.90 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } // DEBUG BEGINS #declare comp_regua = 50; #declare thick_regua = 0.5; #declare tinta_regua = texture { pigment { color rgb < 0.40, 0.20, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare regua = union { cylinder { <0,0,0> thick_regua texture { tinta_regua } } cylinder { <0,0,0> <0, comp_regua, 0> thick_regua texture { tinta_regua } } cylinder { <0,0,0> <0, 0, comp_regua> thick_regua texture { tinta_regua } } } // DEBUG ENDS // CLOCK #if (clock <= 0.5000) #declare my_clock1 = clock * 2; #else #declare my_clock1 = 1.0000; #end #declare angulo_mordida_max = 30; #declare angulo_mordida_min = 15; #declare angulo_garra = 90; #declare angulo_braco = 60; #declare angulo_antebraco = 120; #declare angulo_pega_bandido = 45; #declare angulo_levanta = 25; #declare tam_bandido = 20.0; #declare raio_bandido = 2.0; #declare pos_bandido = 47.5; #declare dist_bandido = 10 / cos(angulo_mordida_min); #declare bandido = cylinder { <0,0,0> <0,0, tam_bandido> raio_bandido translate pos_bandido*y texture { tinta_bandido } } #declare garra = union { cylinder { <-0.50,0,0.50> <5.50,0,0.50> 1 texture { tinta_eixo } } box { <0,0,0> <5,-5,1> texture { tinta_cinza_escuro } } cylinder { <-0.50,-5.00,0.50> <5.50,-5.00,0.50> 2 texture { tinta_eixo } } box { <0,0,0> <5,10,1> texture { tinta_cinza_escuro } translate 0.50*z rotate (angulo_mordida_max - (my_clock1 * ( angulo_mordida_max - angulo_mordida_min)))*x } box { <0,0,0> <5,10,1> texture { tinta_cinza_escuro } translate -0.50*z rotate -(angulo_mordida_max - (my_clock1 * ( angulo_mordida_max - angulo_mordida_min)))*x } translate <-2.50,5.00,-0.50> // Na origem aqui. } #declare tam_braco = 20; #declare raio_braco = 1.50; #declare braco = union { cylinder { <0,0,0> <0,tam_braco,0> raio_braco texture { tinta_cinza_escuro } } } #declare tam_pino = 5; #declare raio_pino = 3; #declare pino = union { cylinder { <0,0,0> <0,0,tam_pino> raio_pino texture { tinta_eixo } translate <0,0, -(tam_pino/2)> } } #declare tam_lei = 25.0; #declare raio_lei = 5.0; #declare lei = union { cylinder { < 0, 0, 0 > < 0, 0, tam_lei*0.60 > raio_lei texture { tinta_lei } } cylinder { < 0, 0, (tam_lei * 0.60) - 1.0> < 0, 0, (tam_lei * 0.70) + 1.0> raio_lei * 0.3 texture { tinta_lei } } cylinder { < 0, 0, (tam_lei * 0.70)> < 0, 0, tam_lei> raio_lei * 0.5 texture { tinta_lei } } //cylinder } #declare braco_dir = union { union { object { garra //rotate (angulo_garra - (my_clock1 * angulo_garra))*x rotate (angulo_pega_bandido * my_clock1)*x translate <0,tam_braco,0> } object { braco } object { pino } rotate -(angulo_antebraco - (my_clock1 * angulo_antebraco))*z translate <0,tam_braco,0> } union { object { braco } object { pino } } rotate (angulo_braco - (my_clock1 * angulo_braco))*z } #declare braco_esq = union { union { object { garra //rotate (angulo_garra - (my_clock1 * angulo_garra))*x rotate -(angulo_pega_bandido * my_clock1)*x translate <0,tam_braco,0> } object { braco } object { pino } rotate -(angulo_antebraco - (my_clock1 * angulo_antebraco))*z translate <0,tam_braco,0> } union { object { braco } object { pino } } rotate (angulo_braco - (my_clock1 * angulo_braco))*z } #declare angulo_bracos = 5.0; object { union { object { lei } union { object { bandido } object { braco_dir rotate -90*y rotate (angulo_bracos * my_clock1) * x translate } object { braco_esq rotate -90*y rotate -(angulo_bracos * my_clock1) * x translate <-(raio_lei + (tam_pino / 2.0)), 0, 10> } #if (clock > 0.5000) translate -(raio_lei + (tam_pino))*z rotate ((clock - 0.5000) * 2 * angulo_levanta)*x translate (raio_lei + (tam_pino))*z #end } } } /* object { regua } */