// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2023-12-24 16:50:31 by stolfi background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_tanque_grande = texture{ pigment{ color rgb < 0.41, 0.41, 0.41 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #macro robo(E11, E12, E13, E14, E15, D11, D12, D13, D14, D15, E21, E22, E23, E24, E25, D21, D22, D23, D24, D25) #local init = <0, 0, 0>; #local final = <0, 10, 5>; #local troncoInit = cylinder { init, final, 2 } #local pernaEsquerda = object { perna(E12, E13, E14, E15) } #local pernaDireita = object { perna(D12, D13, D14, D15) } #local bracoEsquerdo = object { braco(E22, E23, E24, E25) } #local bracoDireito = object { braco(D22, D23, D24, D25) } union { object { troncoInit texture{ tx_tanque_grande } } object { pernaEsquerda rotate E11*y translate init + <1.6, 0, 0> texture{ tx_tanque_grande } } object { pernaDireita rotate D11*y translate init - <1.6, 0, 0> texture{ tx_tanque_grande } } object { bracoEsquerdo rotate E21*y translate final + <1.6, 0, 0> texture{ tx_tanque_grande } } object { bracoDireito rotate D21*y translate final - <1.6, 0, 0> texture{ tx_tanque_grande } } } #end #macro braco(E21, E23, E24, E25) #local subbracoObj = object { subbraco(E23, E24, E25) } #local bracoObj = cylinder { <0, 0, 0>, <0, 0, 3>, 0.4 } union { object { bracoObj } object { subbracoObj rotate E21*y translate <0, 0, 3> texture{ tx_tanque_grande } } } #end #macro subbraco(E23, E24, E25) #local dedoObj = cylinder { <0, 0, 0>, <0, 0, 2>, 0.2 } #local subbracoObj = cylinder { <0, 0, 0>, <0, 0, 4>, 0.4 } union { object { subbracoObj } object { dedoObj rotate E23*y translate <0, 0, 4> texture{ tx_tanque_grande } } object { dedoObj rotate E24*y translate <0, 0, 4> texture{ tx_tanque_grande } } object { dedoObj rotate E25*y translate <0, 0, 4> texture{ tx_tanque_grande } } } #end #macro perna(E12, E13, E14, E15) #local subpernaObj = object { subperna(E13, E14, E15) } #local pernaObj = cylinder { <0, 0, 0>, <0, 0, 3>, 0.4 } union { object { pernaObj } object { subpernaObj rotate E12*y translate <0, 0, 3> texture{ tx_tanque_grande } } } #end #macro subperna(E13, E14, E15) #local dedoObj = cylinder { <0, 0, 0>, <0, 0, 2>, 0.2 } #local subpernaObj = cylinder { <0, 0, 0>, <0, 0, 4>, 0.4 } union { object { subpernaObj } object { dedoObj rotate E13*y translate <0, 0, 4> texture{ tx_tanque_grande } } object { dedoObj rotate E14*y translate <0, 0, 4> texture{ tx_tanque_grande } } object { dedoObj rotate E15*y translate <0, 0, 4> texture{ tx_tanque_grande } } } #end #macro tronco() #end #macro pescoco() #end #macro cabeca() #end #include "eixos.inc" #declare DX = 12; #declare DY = 12; #declare DZ = 12; #macro bicho1() #local E11 = 90; #local E12 = 45; #local E13 = -45; #local E14 = -90; #local E15 = 45; #local D11 = -90; #local D12 = -45; #local D13 = 45; #local D14 = 90; #local D15 = -45; #local E21 = 90; #local E22 = 45; #local E23 = -45; #local E24 = -90; #local E25 = 45; #local D21 = -90; #local D22 = 45; #local D23 = -45; #local D24 = -90; #local D25 = 45; object { robo(E11, E12, E13, E14, E15, D11, D12, D13, D14, D15, E21, E22, E23, E24, E25, D21, D22, D23, D24, D25) } #end #macro bicho2() #local E11 = 45; #local E12 = -60; #local E13 = 40; #local E14 = 0; #local E15 = -60; #local D11 = -45; #local D12 = +70; #local D13 = 30; #local D14 = 0; #local D15 = -40; #local E21 = +60; #local E22 = -45; #local E23 = 40; #local E24 = 0; #local E25 = -40; #local D21 = -60; #local D22 = +65; #local D23 = 40; #local D24 = 0; #local D25 = -40; object { robo(E11, E12, E13, E14, E15, D11, D12, D13, D14, D15, E21, E22, E23, E24, E25, D21, D22, D23, D24, D25) } #end #declare cmin = < -2*DX, -DY+5, -DZ+3 >; #declare cmax = < +2*DX, +DY+3, +DZ >; #include "gaiola.inc" // object{ gaiola(cmin,cmax) } object{ bicho1() translate -DX*x } object{ bicho2() translate +DX*x } #declare centro_cena = (cmin + cmax)/2; #declare raio_cena = 0.50*vlength(cmax-cmin); #declare dist_camera = 7*raio_cena; #include "camlight.inc" #declare dir_camera = < 7, -6, 3 >; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)