// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #include "eixos.inc" #include "camlight.inc" #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #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, t3, tt) #local v01 = interpola(t0, v0, t3, v1, tt); #local v12 = interpola(t0, v1, t3, v2, tt); #local v23 = interpola(t0, v2, t3, v3, tt); #local v012 = interpola(t0, v01, t3, v12, tt); #local v123 = interpola(t0, v12, t3, v23, tt); #local v0123 = interpola(t0, v012, t3, v123, tt); v0123; #end #macro grafico(x0, y0, y1, y2, y3, x3, xx) union { #local yy = interpola4(x0, y0, y1, y2, y3, x3, xx); sphere{yy 0.3 texture{tx_fosca}} } #end #macro graficocheio(x0, y0, y1, y2, y3, x3, N) union { #local xx = x0; #while(xx <= x3) #local yy = interpola4(x0, y0, y1, y2, y3, x3, xx); sphere{yy 0.09} #local xx = xx + ((x3-x0)/N); #end } #end #macro grafico4(y11, y12, y21, y22, y31, y32, y41, y42, cl) union{ #local y0 = (y11+y42)/2; #local yf = y0; #if(cl <= 0.250) #local yy = (y12+y21)/2; object{grafico(0.000, y0, y11, y12, yy, 0.250, cl)} #else #if(cl <= 0.500) #local yi = (y12+y21)/2; #local yy = (y22+y31)/2; object{grafico(0.250, yi, y21, y22, yy, 0.500, cl)} #else #if(cl <= 0.750) #local yi = (y22+y31)/2; #local yy = (y32+y41)/2; object{grafico(0.500, yi, y31, y32, yy, 0.750, cl)} #else #local yi = (y32+y41)/2; object{grafico(0.750, yi, y41, y42, yf, 1.000, cl)} #end #end #end } #end #macro grafico4cheio(x0, y11, y12, y21, y22, y31, y32, y41, y42, x3, N) union{ #local y0 = (y11+y42)/2; #local yf = y0; #local xx0 = x0; #local xx3 = xx0 + (x3-x0)/4; #local yy = (y12+y21)/2; object{graficocheio(xx0, y0, y11, y12, yy, xx3, N/4)} #local xx0 = xx3; #local xx3 = xx3 + ((x3-x0)/4); #local yi = yy; #local yy = (y22+y31)/2; object{graficocheio(xx0, yi, y21, y22, yy, xx3, N/4)} #local xx0 = xx3; #local xx3 = xx3 + ((x3-x0)/4); #local yi = yy; #local yy = (y32+y41)/2; object{graficocheio(xx0, yi, y31, y32, yy, xx3, N/4)} #local xx0 = xx3; #local xx3 = xx3 + ((x3-x0)/4); #local yi = yy; object{graficocheio(xx0, yi, y41, y42, yf, xx3, N/4)} } #end object{grafico4cheio(0, <8,1,0>, <5,6,0>, <1,-4,0>, <3,-2,0>, <-6,-2,0>, <-2,-6,0>, <-2,4,0>, <-4,1,0>, 4, 500)} object{grafico4(<8,1,0>, <5,6,0>, <1,-4,0>, <3,-2,0>, <-6,-2,0>, <-2,-6,0>, <-2,4,0>, <-4,1,0>, clock)} #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 10.0; #declare dir_camera = < 1.00, 0.00, 20.00 >; #declare dist_camera = 16.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)