// Last edited on DATE TIME by USER // Processed by remove-cam-lights background{ color rgb < 1.00, 1.00, 1.00 > } #declare tx_plastico = texture{ pigment{ color rgb < 0.71, 0.45, 0.19 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_plastico2 = texture{ pigment{ color rgb < 0.99, 0.0, 0.00 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 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 tx_xadrez2 = texture{ pigment{ checker color rgb < 0.60, 0.32, 0.10 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #declare tx_vidro = texture{ pigment{ color rgb < 0.9, 0.55, 0.00 > filter 0.90 } finish{ diffuse 0.05 ambient 0.00 } } #declare tx_vidro2 = texture{ pigment{ color rgb < 0.45, 0.75, 0.50 > filter 0.90 } finish{ diffuse 0.05 ambient 0.00 } } #declare raio = 2.000; #include "eixos.inc" #include "retalho.inc" #declare chao = box{ <-100,-100,-1>, <+100,+100,0> } #declare phi = ( sqrt(5) + 1 ) / 2; #declare ponto = sphere{ <0,0,0>, 0.5 } #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,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 v123=interpola(t0,v12,t1,v23,tt); #local v0123=interpola(t0,v012,t1,v123,tt); v0123 #end #macro ponto_grafico(ponto_x,ponto_y) object{ sphere { ponto_y, 0.5 } } #end #macro grafico(x0,y0,y1,y2,y3,x3,N) union{ #local intervalo = (x3-x0)/N; #local x_atual = x0; #while(x_atual <= x3) #local y_atual=interpola4(x0,y0,y1,y2,y3,x3,x_atual); object{ ponto_grafico(x_atual,y_atual) } #local x_atual = x_atual + intervalo; #end //while } #end #macro graficos_emendados(v01,v02,v11,v12,v21,v22,v31,v32,N) #local ponto_uniao1=(v02+v11)/2; #local ponto_uniao2=(v12+v21)/2; #local ponto_uniao3=(v22+v31)/2; #local ponto_uniao4=(v32+v01)/2; union{ object { grafico(0,ponto_uniao4,v01,v02,ponto_uniao1,3,N) texture{tx_plastico} } object { grafico(3,ponto_uniao1,v11,v12,ponto_uniao2,6,N) texture{tx_plastico2} } object { grafico(6,ponto_uniao2,v21,v22,ponto_uniao3,9,N) texture{tx_plastico} } object { grafico(9,ponto_uniao3,v31,v32,ponto_uniao4,12,N) texture{tx_plastico2} } } #end #macro pos(p, fase) #local retorno=p; #if (fase<0) #local retorno= p; #end #if (fase>=0) #local retorno= retorno + <0, 0, 10*fase>; #end #if (fase>=0.25) #local retorno= retorno + <10*fase,0,0>; #end #if (fase>=0.5) #local retorno= retorno + <0, 0, -10*fase>; #end #if (fase>=0.75) #local retorno= retorno + <-10*fase,0,0>; #end retorno #end #macro retalho_emendado(p11,p12,p13,p14,p21,p22,p23,p24,p31,p32,p33,p34,q21,q22,q23,q24,q31,q32,q33,q34,q41,q42,q43,q44,raio,text1,text2) #local pq1 = (p31+q21)/2; #local pq2 = (p32+q22)/2; #local pq3 = (p33+q23)/2; #local pq4 = (p34+q24)/2; #local dt=0.03; union{ object { retalho(pos(p11,clock),pos(p12,clock),pos(p13,clock),pos(p14,clock),pos(p21,clock-dt),pos(p22,clock-dt),pos(p23,clock-dt),pos(p24,clock-dt),pos(p31,clock-2*dt),pos(p32,clock-2*dt),pos(p33,clock-2*dt),pos(p34,clock-2*dt),pos(pq1,clock-3*dt),pos(pq2,clock-3*dt),pos(pq3,clock-3*dt),pos(pq4,clock-3*dt),raio,text1,text1) } object { retalho(pos(pq1,clock-3*dt),pos(pq2,clock-3*dt),pos(pq3,clock-3*dt),pos(pq4,clock-3*dt),pos(q21,clock-4*dt),pos(q22,clock-4*dt),pos(q23,clock-4*dt),pos(q24,clock-4*dt),pos(q31,clock-5*dt),pos(q32,clock-5*dt),pos(q33,clock-5*dt),pos(q34,clock-5*dt),pos(q41,clock-6*dt),pos(q42,clock-6*dt),pos(q43,clock-6*dt),pos(q44,clock-6*dt),raio,text2,text2) } } #end union{ object { retalho_emendado(<1,10,-9>,<-1,-3,-8>,<10,6,9>,<-9,-10,1>,<9,10,-7>,<-8,4,-6>,<-6,7,-10>,<-5,9,0>,<3,-5,-10>,<-7,-9,2>,<7,-8,3>,<10,-8,3>,<-5,-5,-2>,<-9,8,-10>,<3,6,9>,<1,-4,-5>,<-6,8,3>,<-9,-3,1>,<9,2,3>,<-10,-9,-8>,<-7,5,3>,<2,3,8>,<-8,-5,5>,<-7,9,9>,0.01,tx_plastico,tx_plastico2) } object{ eixos(40) } } #include "camlight.inc" #declare centro_cena = < 5.00, 5.00, 1.00 >; #declare raio_cena = 32; #declare dir_camera = < 0.00, 10.0, 6.00 >; #declare dist_camera = 16.00; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)