// 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 > } #declare tx_plastico = texture{ pigment{ color rgb < 0.10, 0.80, 1.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 0.85, 0.30 > } finish{ diffuse 0.2 reflection 0.7*< 1.00, 0.85, 0.30 > ambient 0.1 } } #declare tx_vidro = texture{ pigment{ color rgb < 0.85, 0.95, 1.00 > filter 0.90 } finish{ diffuse 0.05 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.10, 0.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #declare chao = box { <-20, -20, -1>, <+20,+20,0> } #macro interpola(f0, v0, f1, v1, f) #local ss = (f - f0) / (f1 - f0); #local rr = 1 - ss; (rr * v0 + ss * v1) #end #macro interpola4(t0,v0,v1,v2,v3,t1,tt) #local v01 = interpola(t0,v0,t1,v1,tt); #local v12 = interpola(t0,v1,t1,v2,tt); #local v23 = interpola(t0,v2,t1,v3,tt); #local v012 = interpola(t0,v01,t1,v12,tt); #local v122 = interpola(t0,v12,t1,v23,tt); #local vv = interpola(t0,v012,t1,v122,tt); vv #end #macro pingo(xx,yy,zz) union { object { sphere { 0.2 } } } #end #macro grafico(x0,y0,y1,y2,y3,x3,N) union { #local auxiliar2 = x3-x0; #local auxiliar2 = auxiliar2/N; #local auxiliar = x0; #while(auxiliar <= x3) #local yy = interpola4(x0,y0,y1,y2,y3,x3, auxiliar); union { pingo(auxiliar,yy,0) } #local auxiliar = auxiliar + auxiliar2; #end } #end #macro media2(X1,X2) #local auxiliar = X1+X2; #local auxiliar = auxiliar/2; auxiliar #end #macro supergrafico(N1,N2) #local xx = 0; #local yy = 0; grafico(0,5,1,15,8,10,N1) grafico(12,5,1,15,8,22,N2) #local xx = media2(10,12); #local yy = media2(8,5); pingo(xx,yy,0) grafico(24,5,1,15,8,34,N1) #local xx = media2(22,24); #local yy = media2(8,5); pingo(xx,yy,0) grafico(36,5,1,15,8,46,N2) #local xx = media2(34,36); #local yy = media2(8,5); pingo(xx,yy,0) #end #include "eixos.inc" union { object{ eixos(3.00) } supergrafico(10,8) } #include "camlight.inc" #declare centro_cena = < 0.00, 0.0, 0.00 >; #declare raio_cena = 70.0; #declare dir_camera = < 0.00, 5.00, 20.00 >; #declare dist_camera = 30.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)