// CORES E TEXTURAS background{ color rgb < 0, 0, 0 > } #include "eixos.inc" #include "textures.inc" //texturas: #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_vidro_verde = texture{ pigment{ color rgb < 0.10, 0.80, 0.10 > filter 0.70 } finish{ diffuse 0.03 reflection 0.25 ambient 0.02 specular 0.25 roughness 0.005 } } #declare tx_vidro_vermelho = texture{ pigment{ color rgb < 0.80, 0.10, 0.10 > filter 0.70 } finish{ diffuse 0.03 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 } //valores: #declare grafico_ponto_raio = 0.05; //partes da cena: #macro interpola(t0,v0,t1,v1,tt) #local ss = (tt-t0)/(t1-t0); #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_ponto (tt,vv) sphere{ <0,tt,vv> , grafico_ponto_raio texture{ tx_fosca } } #end #macro grafico(t0,v0,v1,v2,v3,t3,n) #local delta = (t3-t0)/(n-1); #local tt = t0; #while(tt<=t3) #local vv = interpola4(t0,v0,v1,v2,v3,t3,tt); grafico_ponto(tt,vv) #local tt = tt + delta; #end #end #macro grafico4(t0a,v0a,v1a,v2a,v1b,v2b,v1c,v2c,v1d,v2d,t3d,v3d,n) #local t3a = t0a+1*(t3d-t0a)/4; #local v3a = (v2a+v1b)/2; grafico(t0a,v0a,v1a,v2a,v3a,t3a,n/4) #local t3b = t0a+2*(t3d-t0a)/4; #local v3b = (v2b+v1c)/2; grafico(t3a,v3a,v1b,v2b,v3b,t3b,n/4) #local t3c = t0a+3*(t3d-t0a)/4; #local v3c = (v2c+v1d)/2; grafico(t3b,v3b,v1c,v2c,v3c,t3c,n/4) grafico(t3c,v3c,v1d,v2d,v3d,t3d,n/4) #end //cena: /*union{ object { eixos(10.0) } object { grafico(0,2,-1,3,2,6,5) } }*/ union{ object { eixos(10.0) } // grafico(0,2,-1,3,2,6,200) //grafico4(t0a,v0a,v1a,v2a,v1b,v2b,v1c,v2c,v1d,v2d,t3d,v3d,n) grafico4(0, 3, 5, 3, -2, -3, 6, 3, -2, -1, 10, 0, 1000) //plane{ <0,0,1>, 0 interior{ ior 1.15 } } //plane{ <1,0,0>, 0 interior{ ior 1.15 } } } #include "camlight.inc" #declare centro_cena = < 0.00, 5.00, 0.00 >; #declare raio_cena = 10.0; #declare dir_camera = < 10.00, 0, 3 >; #declare dist_camera = 10.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)