// Last edited on 2009-07-24 18:14:26 by stolfilocal // Processed by remove-cam-lights background{ color rgb < 0.75, 0.80, 0.85 > } #declare raio = 2.000; #declare tex_Arm = texture { pigment { color rgb < 1.0, 1.0, 1.0 >} finish { diffuse 0.4 specular 0.1 roughness 0.005 ambient 0.1 reflection 0.4} } #declare tex_Joint = texture { pigment { color rgb < 2.8, 0.4, 0.4 > /2.8 } finish { diffuse 0.4 specular 0.1 roughness 0.005 ambient 0.1 reflection 0.4} } #declare tex_Fork = texture { pigment { color rgb < 4.5, 4.5, 0.5 > / 6.5 } finish { diffuse 0.3 specular 0.1 roughness 0.005 ambient 0.1 reflection 0.5} } #declare tex_Base = texture { pigment { color rgb < 0.5, 1.5, 0.5 > /1.5 } finish { diffuse 0.3 specular 0.1 roughness 0.005 ambient 0.1 reflection 0.5} } #macro fork() union{ sphere{<0,0,0>20 texture{tex_Fork}} box{<0,-5,-10><200,5,10> texture{tex_Fork}} box{<200,0,-30><210,10,30> texture{tex_Fork}} box{<210,0,24><250,10,30> texture{tex_Fork}} box{<210,0,-3><250,10,3> texture{tex_Fork}} box{<210,0,-24><250,10,-30> texture{tex_Fork}} } #end #macro base(teta_A, teta_B, gama_A, gama_B, gama_C, beta_A, beta_B, alpha_A, alpha_B, alpha_C) union{ box{<-50,-50,-100><50,50,0> texture{tex_Base}} object{ arm_01(gama_A, gama_B, gama_C, beta_A, beta_B, alpha_A, alpha_B, alpha_C) rotate<0,teta_A,teta_B> translate<0,0,0> } } #end #macro arm_01(gama_A, gama_B, gama_C, beta_A, beta_B, alpha_A, alpha_B, alpha_C) union{ sphere{<0,0,0>30 texture{tex_Joint}} cylinder{<0,0,0>,<300,0,0>,20 texture{tex_Arm}} object{ arm_02(beta_A, beta_B, alpha_A, alpha_B, alpha_C) rotate translate<300,0,0> } } #end #macro arm_02(beta_A, beta_B, alpha_A, alpha_B, alpha_C) union{ sphere{<0,0,0>30 texture{tex_Joint}} cylinder{<0,0,0>,<300,0,0>,20 texture{tex_Arm}} object{ arm_03(alpha_A, alpha_B, alpha_C) rotate<0,beta_A,beta_B> translate<300,0,0> } } #end #macro arm_03(alpha_A, alpha_B, alpha_C) union{ sphere{<0,0,0>30 texture{tex_Joint}} cylinder{<0,0,0>,<300,0,0>,20 texture{tex_Arm}} object{ fork() rotate translate<300,0,0> } } #end #declare c0 = 0.0; #declare c1 = 0.16; #declare c2 = 0.33; #declare c3 = 0.49; #declare c4 = 0.66; #declare c5 = 0.83; #declare c6 = 1.0; #declare l_teta_A = -90; #declare l_teta_B = 0; #declare l_gama_A = 0; #declare l_gama_B = 0; #declare l_gama_C = 0; #declare l_beta_A = 0; #declare l_beta_B = 0; #declare l_alpha_A = 0; #declare l_alpha_B = 0; #declare l_alpha_C = 0; #declare nh = 5; #declare nv = 4; #declare nquadros = nh*nv; #declare cini = 0.0; #declare cfn = 1.0; #declare cpasso = (cfn-cini)/(nquadros-0.9999); #declare ck = cini; #declare iv=0; #declare translateX=0; #declare translateY=0; union{ #while(iv < nv) #declare ih = 0; #while (ih < nh) #if ((ck >= c0) & (ck < c1)) #declare rr = (ck-c0)/(c1-c0); #declare ss = (c1-ck)/(c1-c0); #declare l_gama_A = ss*0+rr*130; #declare l_alpha_A = ss*0+rr*-40; #end #if ((ck >= c1) & (ck < c2)) #declare rr = (ck-c1)/(c2-c1); #declare ss = (c2-ck)/(c2-c1); #declare l_gama_A = ss*130+rr*30; #declare l_beta_A = ss*0+rr*90; #declare l_alpha_A = ss*-40+rr*0; #end #if ((ck >= c2) & (ck < c3)) #declare rr = (ck-c2)/(c3-c2); #declare ss = (c3-ck)/(c3-c2); #declare l_gama_C = ss*0+rr*-110; #end #if ((ck >= c3) & (ck < c4)) #declare rr = (ck-c3)/(c4-c3); #declare ss = (c4-ck)/(c4-c3); #declare l_gama_A = ss*30+rr*0; #end #if ((ck >= c4) & (ck < c5)) #declare rr = (ck-c4)/(c5-c4); #declare ss = (c5-ck)/(c5-c4); #declare l_beta_A = ss*90+rr*120; #declare l_alpha_A = ss*0+rr*-30; #declare l_alpha_C = ss*0+rr*90; #end #if ((ck >= c5) & (ck <= c6)) #declare rr = (ck-c5)/(c6-c5); #declare ss = (c6-ck)/(c6-c5); #declare l_alpha_A = ss*-30+rr*0; #declare l_alpha_C = ss*90+rr*0; #declare l_beta_A = ss*120+rr*0; #declare l_gama_C = ss*-110+rr*0; #end object{ base(l_teta_A, l_teta_B, l_gama_A, l_gama_B, l_gama_C, l_beta_A, l_beta_B, l_alpha_A, l_alpha_B, l_alpha_C) translate } #declare translateX = translateX+1200; #declare ck = ck+cpasso; #declare ih=ih+1; #end #declare translateY = translateY - 1500; #declare translateX = 0; #declare iv = iv+1; #end } // Original camera parameters: // #local cam_ctr = <2000,0,-1500> // #local cam_vec = (<2000,-6000,0>-<2000,0,-1500>) // #local cam_sky = z #include "camlight.inc" camlight(<1200*(nh-1)/2,0,-1500*(nv-1)/2+400>,<3,10,5>,10000.0,z,1.0)