// Last edited on 2003-12-07 18:47:08 by stolfi // Exemplo de arquivo de descricao de cena para POV-ray // ====================================================================== #include "colors.inc" #include "metals.inc" #include "golds.inc" #include "stones1.inc" #include "textures.inc" background{ color rgb < 0.8,0.9,1.5 > } //definicao da camera #declare ctr = < 0.00, 0.00, 0.00 >; #declare camDir = < 2.0, 3.00, 10.00 >; camera { location ctr + 0.75*camDir right -1.00*x up 0.75*y sky y look_at ctr } // ====================================================================== // FONTES DE LUZ light_source { 10 * < 0.0, 20.0, +5.0 > // Posição da lâmpada. color rgb 2.5 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { < 10.0, 4.0, 1.0 > // Posição da lâmpada. color rgb 2.5 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } #declare cabeca1 = sphere { <0,0,0>, 0.7 pigment {color Bronze} } #declare corte1 = cylinder { <.4,0,0>, <3,0,0>, 0.7 pigment {color Bronze} } #declare antena1 = torus { 0.3, 0.1 pigment {color RichBlue} rotate -90*z } #declare corte_antena2 = box{ <1, 1, 1>, <-1,-1,0> pigment {color RichBlue} } #declare corte_antena1 = box{ <-1, -1, -1>, <1,1,0> pigment {color RichBlue} } #declare sensor = sphere { <0,0,0>, 0.15 pigment {color SeaGreen} } #declare antena_esq = union { difference { object {antena1} object {corte_antena1} } object {sensor translate <0,0.3,0>} } #declare antena_dir = union { difference { object {antena1} object {corte_antena2} } object {sensor translate <0,0.3,0>} } #declare cabeca = union { difference { object {cabeca1} object {corte1} } object {antena_esq translate 0.7*y translate -0.4*z} object {antena_dir translate 0.7*y translate 0.4*z} } #declare parte1 = cylinder { <0,0,0>, <.5,0,0>, 0.1 pigment {color Bronze} } #declare parte2 = cylinder { <0,0,0>, <.5,0,0>, 0.1 pigment {color Bronze} } #declare juncao1 = sphere { <0,0,0>, 0.15 pigment {color Bronze} } #declare partes = union { object {parte1} object {juncao1} } // Aqui está a cena, finalmente: #declare fonte = seed(3567759); #declare anguloAlfa = -90*rand(fonte); #declare anguloBeta = 90*rand(fonte); #declare anguloGama = -90*rand(fonte); #declare anguloSigma = -90*rand(fonte); #declare i = 1; #while (i <= 1) #declare aux1 = 1*rand(fonte); #declare aux2 = 1*rand(fonte); #if (aux1 <= 0 & aux2 <= 0) #declare anguloAlfa = 90*rand(fonte); #declare anguloBeta = 90*rand(fonte); #declare anguloGama = -90*rand(fonte); #declare anguloSigma = -90*rand(fonte); #else #if (aux1 <= 0) #declare anguloAlfa = 90*rand(fonte); #declare anguloBeta = -90*rand(fonte); #declare anguloGama = -90*rand(fonte); #declare anguloSigma = 90*rand(fonte); #else #if (aux2 <= 0) #declare anguloAlfa = -90*rand(fonte); #declare anguloBeta = 90*rand(fonte); #declare anguloGama = 90*rand(fonte); #declare anguloSigma = -90*rand(fonte); #end #end #end #declare parte2 = union { cylinder { <0,0,0>, <.5,0,0>, 0.1 pigment {color Bronze} } sphere { <0,0,0>, 0.15 pigment {color Bronze} } } #declare parte1 = union { cylinder { <0,0,0>, <0.5,0,0>, 0.1 pigment {color Bronze} } sphere { <0,0,0>, 0.15 pigment {color Bronze} } object {parte2 rotate anguloBeta*z translate <0.5,0,0>} } object {parte1 rotate anguloAlfa*z translate <0,0,0>} #declare i = i + 1; #end