// 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 > } // ====================================================================== // DESCRIÇÃO DA CENA // Partes da cena: #declare raiz = cone { <0, 0, 0>, 1 <0, 0, 1>, 0.5 pigment{ color rgb<0.8, 0.6, 0.3> } } #declare tronco = cylinder{ < 0, 0, 1 >, < 0, 0, 8>, 0.5 pigment{ color rgb<0.8, 0.6, 0.3> } } #declare topo = sphere{ < 0, 0, 8 >, 0.5 pigment{ color rgb<0.8, 0.6, 0.3> } } #declare dinheiro = box{ < 0, 0, 0>, <0.2, 0.6, 0.3> pigment{ color rgb<0, 1, 0> } } #macro arvore(n, xx, yy, zz, larg) #if(n=0) union{ object{ dinheiro translate } } #else union{ //centrais cylinder{ < xx, yy, zz>, < xx, yy, zz+n>, 0.15/larg pigment{ color rgb<0.8, 0.6, 0.3> } } object{ dinheiro translate } object{ arvore(n-1, xx, yy, zz+n, larg+1) } //esquerda cylinder{ < xx, yy, zz>, < xx, yy-(n)*cos(45), zz+(n)*sin(45)>, 0.15/larg pigment{ color rgb<0.8, 0.6, 0.3> } } object{ dinheiro translate } object{ arvore(n-1, xx, yy-(n)*cos(45), zz+(n)*sin(45), larg+1) } //direita cylinder{ < xx, yy, zz>, < xx, yy+(n)*cos(45), zz+(n)*sin(45)>, 0.15/larg pigment{ color rgb<0.8, 0.6, 0.3> } } object{ dinheiro translate } object{ arvore(n-1, xx, yy+(n)*cos(45), zz+(n)*sin(45), larg+1) } } #end #end #include "eixos.inc" // Aqui está a cena, finalmente: union{ object{ raiz } object{ tronco } object{ topo } object{ arvore(3, 0, 0, 8, 1) } } #include "camlight.inc" #declare centro_cena = < 0.00, 2.00, 4.00 >; #declare raio_cena = 30.0; #declare dir_camera = < 14.00, 0.00, 6.00 >; #declare dist_camera = 10.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)