#include "eixos.inc" // Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2020-09-30 19:57:13 by jstolfi // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.8, 0.8, 0.8 > } #declare tx_tanque = texture{ pigment{ color rgb < 0.3, 0.3, 0.3 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tanque_1 = union { prism { conic_sweep linear_spline 0.75, // height 1 1, // height 2 5, // the number of points making up the shape... <1,1>,<-1,1>,<-1,-1>,<1,-1>,<1,1> scale <1, 4, 1> rotate <-90, 0, 0> translate<0, 0, 6> texture {tx_tanque} } box { <-1, -1, 0>, <1, 1, 2> texture { tx_tanque } } } #declare tanque_2 = union { difference{ sphere { <0, 0, 1>, 1.5 // , radius texture {tx_tanque} } box{<-1.5, -1.5, -1.5> <1.5, 1.5, 0>} } } #declare p1 = <1,1,0>; #declare p2 = <-1,1,0>; #declare p3 = <-1,-1,0>; #declare p4 = <1,-1,0>; #declare p5 = <0,0,2>; #declare semi_tanque_3 = difference { union { polygon { 5, p1, p2, p3, p4, p1 } polygon { 4, p1, p2, p5, p1 } polygon { 4, p2, p3, p5, p2 } polygon { 4, p3, p4, p5, p3 } polygon { 4, p4, p1, p5, p4 } } box {<1, 1, 1> <-1, -1, 2>} } #declare tanque_3 = union { object {semi_tanque_3} object { semi_tanque_3 rotate<180, 0, 0> translate <0, 0, 2> } texture {tx_tanque} } #macro gera_tanques (m, n) #declare roleta = seed(3253); #declare multiplier = 5; #for (i, 0, m-1) #for (j, 0, n-1) #declare random = floor(3*rand(roleta)); #if (random = 0) object {tanque_1 translate } #else #if (random = 1) object {tanque_2 translate } #else object {tanque_3 translate } #end #end #end #end #end object {eixos (4)} gera_tanques(3,3) #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 10.0; #declare dir_camera = < 1.00, 1.00, 0.50 >; #declare dist_camera = 5*raio_cena; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)