// Trabalho Pratico 3 // Autor: Guilherme Seiji Ito // RA: 146325 // ====================================================================== // CORES E TEXTURAS background{ color rgb < 1, 1, 1 > } #declare tx_enlace = texture{ pigment{ color rgb < 0, 0.55, 0.55 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_no = texture{ pigment{ color rgb <0,0,1> } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_pacote = texture{ pigment{ color rgb <1,0,0> } finish{ diffuse 0.9 ambient 0.1 } } // ====================================================================== // DESCRIÇÃO DA CENA #declare pacote = box{ 3*<-0.2,-0.2,-0.2>, 3*<0.3,0.3,0.3> texture{tx_pacote}} #macro enlaces(p1, p2, tp, rp) union { cylinder{ p1, p2, 0.5 texture{tx_enlace} } #if(tp = 1) object{pacote translate((1-rp)*p1 + rp*p2)} #end } #end #macro rede(n_nos, n_enlaces) union { #declare posicao_no = array[n_nos] #declare tamanho_no = array[n_nos] #declare i = 0; #declare roleta = seed(111); #while(i; #declare tamanho_no[i] = 0.5+5*rand(roleta); sphere{posicao_no[i], tamanho_no[i] texture{tx_no}} #declare i = i + 1; #end #declare j = 0; #while(j=p1) #declare p2 = p2 + 1; #end object{enlaces(posicao_no[p1], posicao_no[p2], (rand(roleta) < 0.9), rand(roleta))} #declare j = j + 1; #end } #end #include "eixos.inc" // Aqui está a cena, finalmente: union{ object{ eixos(3.00) } object{rede(100, 100)} } #include "camlight.inc" #declare centro_cena = < 0.00, 50.00, 0.00 >; #declare raio_cena = 150.0; #declare dir_camera = < 14.00, 0.00, 8.00 >; #declare dist_camera = 600.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)