// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2010-03-04 15:44:01 by stolfi // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_braco = texture{ pigment{ color rgb < 0.80, 0.20, 0.70 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_nariz = texture{ pigment{ color rgb < 0.5, 0.1, 0.7 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_art = texture{ pigment{ color rgb < 0.8, 0.6, 0.2 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_base = texture{ pigment{ checker color rgb < 0.8, 0.5, 0 >, color rgb < 0, 0, 1 > } finish{ diffuse 0.9 ambient 0.1 } scale 0.5 } #declare tx_garra = texture{ pigment{ color rgb < 1, 0, 0 > } finish{ diffuse 0.9 reflection ambient 0.1} } // ====================================================================== // DESCRIÇÃO DA CENA #declare raio = 2.000; // Partes da cena: #declare base = cylinder{ < 0, -2, -3 >, < 0, -2, -3.5 >, raio texture{ tx_base } } #declare articula = sphere{ < 0,-2,0 >, raio/2 texture {tx_art} } #declare haste = cylinder{ < 0, -2, 0 >, < 0, -2, -3 >, raio/4 texture{ tx_braco } } #declare haste_incl = cylinder{ < 0, 0, 3 >, < 0, -2, 1.3 >, raio/4 texture{ tx_braco } } #declare garra_ext = cylinder{ < -0.1, 0.2, 3 >, < 0.1, 0.2, 3 >, raio*0.7 texture{ tx_garra } } #macro garra(tam_garra,posicao,base_garra,raio_base, desloc) union{ cylinder{ < -1, 0.2+posicao+desloc, 3+posicao >, < 1, 0.2+posicao+desloc, 3+posicao>, tam_garra texture{ tx_garra } } cylinder{ < 0, desloc, 3 >, < 0, 1.5 + base_garra + desloc, 4.3 + base_garra >, raio_base texture{ tx_garra } } } #end #macro segurador(tam_garra,posicao,base_garra,raio_base,deslocamento) union{ object { base translate<0,deslocamento,0>} object { haste translate<0,deslocamento,0>} object { articula translate <0,deslocamento,raio/2 - 0.2> } object { haste_incl translate<0,0.2+deslocamento,0> } object { articula translate <0,2.2+deslocamento,3> } difference{ object { garra_ext translate <0,1+deslocamento,1>} object { garra(tam_garra,posicao,base_garra,raio_base, deslocamento) } } } #end #include "eixos.inc" // Aqui está a cena, finalmente: object { segurador(1 , 1.5 , 0 , 0.5 , -5) } object { segurador(0.5 , 1.7 , 0.2 , 0.3 , 0) } object { segurador(0.2 , 1.7 , 0.3 , 0.2 , 5) } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 10.0; #declare dir_camera = < 21.00, 2.00, 4.00 >; //#declare dir_camera = < 14.00, 7.00, 4.00 >; #declare dist_camera = 16.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)