// Last edited on 2013-12-11 11:25:20 by stolfilocal // Processed by remove-cam-lights background{ color rgb < 1,1,1 > } #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_borracha = texture{ pigment{ color rgb < 0.21, 0.25, 0.24 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_espelho = texture{ pigment{ color rgb < 1.00, 1, 1 > } finish{ diffuse 0.2 reflection 0.7*< 0.20, 0.63, 0.87 > ambient 0.1 } } #declare tx_bico = texture{ pigment{ color rgb < 0.48, 0.25, 0 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_roda = texture{ pigment{ color rgb < 0.21, 0.25, 0.24 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_corpo = texture{ pigment{ color rgb < 0.48,0.66,0.87 > } finish{ diffuse 0.9 ambient 0.1 } } #include "eixos.inc" #declare nq = 2; //Numero de quadros chave #declare nt = 4;// Numero de tentaculos #declare np = 19; //Numero de parametros por tentaculo #declare d = array[nq+1]; //tempos de cada quadro chave #declare q = array[nq+1][nt][np]; //parametros de cada tentaculo em cada quadro chave #declare d[0] = 0; #declare d[nq]= 1; #declare q[0][0][0]=(-2)*sin(180*clock); #declare q[0][0][1]=0; #declare q[0][0][2]=0; #declare q[0][0][3]=0; #declare q[0][0][4]=1; #declare q[0][0][5]=0; #declare q[0][0][6]=0; #declare q[0][0][7]=-1; #declare q[0][0][8]=0; #declare q[0][0][9]=0; #declare q[0][0][10]=-1; #declare q[0][0][11]=2; #declare q[0][0][12]=0; #declare q[0][0][13]=1; #declare q[0][0][14]=0; #declare q[0][0][15]=1; #declare q[0][0][16]=1; #declare q[0][0][17]=3; #declare q[0][0][18]=0; #macro extrai_parametros_do_quadro(q,i,t1,qi,t2) #local p=0; #while(p translate<0,-2,0>} object{tentaculo_vetor(qi,0,0.01) rotate<0,0,90> translate<2,0,0>} object{tentaculo_vetor(qi,0,0.01) rotate<0,0,180> translate<0,2,0>} object{tentaculo_vetor(qi,0,0.01) rotate<0,0,270> translate<-2,0,0>} #end #macro interpola(p0,p1,tt) ((1-tt)*p0 + tt*p1) #end #macro curva(p0,p1,p2,p3,tt) union{ #while (tt < 1.5) object{ sphere{ interpola4(p0,p1,p2,p3,tt) interpola4(0.1,0.2,0.3,0.4,tt) texture{tx_espelho} } } #declare tt=tt+1/40; #end } #end #macro interpola4(p0,p1,p2,p3,tt) #local p01=interpola(p0,p1,tt); #local p12=interpola(p1,p2,tt); #local p23=interpola(p2,p3,tt); #local p012=interpola(p01,p12,tt); #local p123=interpola(p12,p23,tt); #local p0123 = interpola(p012,p123,tt); p0123 #end #macro tentaculo(p0,p1,p2,q1,q2,q3,tt) union{ #local t1 = tt; #local p3 =(p2+q1)/2; #local q0 = p3; object{curva(p0,p1,p2,p3,tt) rotate<0,0,0>} object{curva(q0,q1,q2,q3,tt) rotate<0,0,0>} } #end #macro tentaculo_vetor(p,i,tt) tentaculo(,,,,,,tt) #end union{ object{eixos(3.00)} polvo_quadro(q) } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 0.00 >; #declare raio_cena = 9.0; #declare dir_camera = < 14.00, 7.00,4.00 >; #declare dist_camera = 16.0; #declare intens_luz = 1.00;