// Last edited on DATE TIME by USER // Processed by remove-cam-lights 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 < 0.3, 0.3, 1.00 > } 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.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 } #include "eixos.inc" #include "retalho.inc" #local time = clock; #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 interpola_complicado (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); interpola(t0,v012,t3,v123,tt); #end #macro grafico(x0, y0, y1, y2, y3, x3, N) #local intervaloX = (x3-x0)/N; #local X=x0; #while(X<=x3) #local Y = interpola_complicado(x0, y0, y1, y2, y3, x3, X); #local X = X + intervaloX; object{sphere {Y 0.1} texture{tx_espelho}} #end #end #macro grafico_mexe(x0, y0, y1, y2, y3, x3, N) #local Y = interpola_complicado(x0, y0, y1, y2, y3, x3, N); object{sphere {Y 0.4} texture{tx_espelho}} #end #macro grafico4_mexe(x0, y_inicial, y10, y11, y20, y21, y30, y31, y40, y41, y_final, x3, N) #local y_inicial1 = (y11+y20)/2; #local y_inicial2 = (y21+y30)/2; #local y_inicial3 = (y31+y40)/2; #if(N<0.25) grafico_mexe(x0,y_inicial,y10,y11,y_inicial1,x3/4,N) #else #if(N<0.5) grafico_mexe(x3/4,y_inicial1,y20,y21,y_inicial2,x3/2,N) #else #if(N<0.75) grafico_mexe(x3/2,y_inicial2,y30,y31,y_inicial3,3*x3/4,N) #else grafico_mexe(3*x3/4,y_inicial3,y40,y41,y_inicial,x3,N) #end #end #end #end #macro grafico4(x0, y_inicial, y10, y11, y20, y21, y30, y31, y40, y41, y_final, x3, N) #local y_inicial1 = (y11+y20)/2; #local y_inicial2 = (y21+y30)/2; #local y_inicial3 = (y31+y40)/2; union{ grafico(x0,y_inicial,y10,y11,y_inicial1,x3/4,N) grafico(x3/4,y_inicial1,y20,y21,y_inicial2,x3/2,N) grafico(x3/2,y_inicial2,y30,y31,y_inicial3,3*x3/4,N) grafico(3*x3/4,y_inicial3,y40,y41,y_inicial,x3,N) } #end #macro junta_retalho() #local p21 = <0,-5,0>; #local p22 = <0,-3,3>; #local p23 = <0,-1,4>; #local p24 = <0,1,-3>; #local p31 = <-2,-5,0>; #local p32 = <-2,-3,3>; #local p33 = <-2,-1,2>; #local p34 = <-2,1,5>; #local q21 = <2,-5,0>; #local q22 = <2,-3,3>; #local q23 = <2,-1,4>; #local q24 = <2,1,2>; #local q31 = <1,-5,0>; #local q32 = <1,-3,3>; #local q33 = <1,-1,2>; #local q34 = <1,1,2>; #local q11 = <5,-5,4>; #local q12 = <5,-3,3>; #local q13 = <5,-1,2>; #local q14 = <5,1,1>; #local r21 = <-4,-5,0>; #local r22 = <-4,-3,3>; #local r23 = <-4,-1,4>; #local r24 = <-4,1,2>; #local r31 = <-3,-5,0>; #local r32 = <-3,-3,3>; #local r33 = <-3,-1,2>; #local r34 = <-3,1,2>; #local r11 = <-7,-5,4>; #local r12 = <-7,-3,3>; #local r13 = <-7,-1,2>; #local r14 = <-7,1,1>; #local p11 = (p21+q31)/2; #local p12 = (p22+q32)/2; #local p13 = (p23+q33)/2; #local p14 = (p24+q34)/2; #local q41 = (p21+q31)/2; #local q42 = (p22+q32)/2; #local q43 = (p23+q33)/2; #local q44 = (p24+q34)/2; #local r41 = (p31+r31)/2; #local r42 = (p32+r32)/2; #local r43 = (p33+r33)/2; #local r44 = (p34+r34)/2; #local p41 = (p31+r31)/2; #local p42 = (p32+r32)/2; #local p43 = (p33+r33)/2; #local p44 = (p34+r34)/2; union{ retalho(p11, p12, p13, p14, p21, p22, p23, p24, p31, p32, p33, p34, p41, p42, p43, p44, 0.0, tx_espelho, tx_fosca) retalho(q11, q12, q13, q14, q21, q22, q23, q24, q31, q32, q33, q34, q41, q42, q43, q44, 0.0, tx_xadrez, tx_plastico) retalho(r11, r12, r13, r14, r21, r22, r23, r24, r31, r32, r33, r34, r41, r42, r43, r44, 0.0, tx_xadrez, tx_xadrez) } #end junta_retalho() object{grafico4(-4, <-4,-5,0>, <0,-2,0>, <5,0,2>, <0,0,4>, <6,0,4>, <6,-1,5>, <3,-8,2>, <0,-4,2>, <3,0,2>, <0,1,2>, 10, 100) translate<0,8,0>} object{grafico4_mexe(0, <-4,-5,0>, <0,-2,0>, <5,0,2>, <0,0,4>, <6,0,4>, <6,-1,5>, <3,-8,2>, <0,-4,2>, <3,0,2>, <0,1,2>, 1, clock) translate<0,8,0>} object{ eixos(3.00) } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 0.00 >; #declare raio_cena = 18.0; #declare dir_camera = < -1.00, 1.00, 3.00 >; #declare dist_camera = 10.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)