// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2017-05-07 20:10:09 by stolfilocal // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_cinza = texture{ pigment{ color rgb < 0.60, 0.60, 0.60 > } finish{ diffuse 0.9 ambient 0.1 } } // ====================================================================== // DESCRIÇÃO DA CENA #declare raio = 1; // Partes da cena: #declare bola = sphere{ < 0.00, 0.00, 0.00 >, raio } #macro dedo() cylinder { <0,0,0>, <0.5,0,0>, 0.2 texture { tx_cinza } } #end #macro mao(angDedo1,angDedo2,angDedo3) union{ box { <1, -0.5, -0.25>, <0, 0.5, 0.25> texture { tx_cinza } } object { dedo() rotate <0,angDedo1,0> translate <1,-0.2,0> } object { dedo() rotate <0,angDedo1,0> translate <1,0.2,0> } object { dedo() rotate <0,0,90> rotate translate <0.2,0.5,0> } } #end #macro antebraco(angMao,angDedo1,angDedo2,angDedo3) union{ cylinder { <0,0,0>, <2,0,0>, 0.5 texture { tx_cinza } } object { mao(angDedo1,angDedo2,angDedo3) rotate <0,angMao,0> translate<2,0,0> } } #end #macro braco(angAB,angMao,angDedo1,angDedo2,angDedo3) union{ cylinder { <0,0,0>, <2,0,0>, 0.5 texture { tx_cinza } } object { antebraco(angMao,angDedo1,angDedo2,angDedo3) rotate <0,angAB,0> translate<2,0,0> } } #end #macro robo(ang1Braco1,ang2Braco1,angAB1,angMao1,angDedo11,angDedo21,angDedo31,ang1Braco2,ang2Braco2,angAB2,angMao2,angDedo12,angDedo22,angDedo32) union{ box { <1, -1, -1.5>, <-1, 1, 1.5> texture { tx_cinza } } //Bracos object { braco(angAB1,angMao1,angDedo11,angDedo21,angDedo31) rotate <0,ang1Braco1,ang2Braco1> translate<1,0,1> } object { braco(angAB2,angMao2,angDedo12,angDedo22,angDedo32) rotate <0,ang1Braco2,ang2Braco2> translate<1,0,1> scale -1*x} //Cabeca object {bola translate <0,0,2.5> texture { tx_cinza }} //Pernas object {bola scale <0.5,0.5,0.5> translate <0.5,0,-2> texture { tx_cinza }} object {bola scale <0.5,0.5,0.5> translate <-0.5,0,-2> texture { tx_cinza }} } #end #include "eixos.inc" // Aqui está a cena, finalmente: union{ object{ eixos(4.00) } object{ robo(30,-45,30,0,45,10,-20,-45,15,-10,20,-15,15,-10) } } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 10.0; #declare dir_camera = < 8.00, 14.00, 6.00 >; #declare dist_camera = 5*raio_cena; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)