// CORES E TEXTURAS #declare tx_fosca = texture{ pigment{ color rgb < 1, 1, 1 > } finish{ diffuse 0.9 ambient 0.1 } } // ====================================================================== // DESCRIÇÃO DA CENA // Partes da cena: #include "eixos.inc" // Aqui está a cena, finalmente: // Macro cena // r - raio da bola //n - num de bolas #macro cria_circulo(r, n) #declare i = 0; union{ #while(i r texture{tx_fosca}} #declare i = i + 1; #end } #end #macro cria_quadrado(r, n) union{ #declare alfa = -pi/4; #declare delta = 2*pi/n; #while(alfa < 7*pi/4) #if((alfa > -pi/4) & (alfa <= pi/4)) sphere{<1, tan(alfa), 0>, r texture{tx_fosca}} #end #if((alfa > pi/4) & (alfa <= 3*pi/4)) sphere{<1/tan(alfa), 1, 0>, r texture{tx_fosca}} #end #if((alfa > 3*pi/4) & (alfa <= 5*pi/4)) sphere{<-1, -tan(alfa), 0>, r texture{tx_fosca}} #end #if((alfa > 5*pi/4) & (alfa <= 7*pi/4)) sphere{<-1/tan(alfa), -1, 0>, r texture{tx_fosca}} #end #declare alfa = alfa + delta; #end } #end object{cria_quadrado(0.1, 100)} object{cria_circulo(0.1,100)} #include "camlight.inc" #declare centro_cena = < 0,0,0>; #declare raio_cena = 3; #declare dir_camera = < 0,2,4 >; #declare dist_camera = 5*raio_cena; #declare intens_luz = 1.20; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)