// Last edited on 2009-07-24 17:49:24 by stolfilocal background{ color rgb < 0.75, 0.80, 0.85 > } #macro garfo () union { cylinder { < 0.0, 0.0, 0.0 >, < 1.0, 0.0, -1.0 >, 0.1 pigment { color rgb < 1.0,1.0, 0.0 > } } cylinder { < 1.8, 0.0, -0.5 >, < 0.0, 0.0, -1.3 >, 0.1 pigment { color rgb < 1.0,1.0, 0.0 > } } cone { < 1.8, 0.0, -0.5 >, 0.1, < 2.0, 0.0, -1.8 >,0.05 pigment { color rgb < 1.0,1.0, 0.0 > } } cone { < 1.8, 0.0, -0.5 >, 0.1, < 2.0, 0.0, -1.8 >,0.05 pigment { color rgb < 1.0,1.0, 0.0 > } translate < -0.9, 0.0, -0.4 > } cone { < 1.8, 0.0, -0.5 >, 0.1, < 2.0, 0.0, -1.8 >,0.05 pigment { color rgb < 1.0,1.0, 0.0 > } translate < -1.75, 0.0, -0.7 > } sphere { < 0.0, 0.0, 0.0 >, 0.2 pigment { color rgb < 1.0,1.0, 0.0 > } } } #end #macro anteBraco( x1, z1 ) union { cone { < 0.0, 0.0, 0.0 >, 0.2, < 2.0, 0.0, -1.0 >, 0.13 pigment { color rgb < 1.0,1.0, 0.0 > } } object { garfo () rotate < x1, 0.0, z1 > translate < 2.0, 0.0, -1.0 > } } #end #macro braco( x1, z1, x2, z2 ) union { cone { < 0.0, 0.0, 0.0 >, 0.3, < 3.0, 0.0, -1.0 >, 0.2 pigment { color rgb < 1.0,1.0, 0.0 > } } object { anteBraco( x1, z1 ) rotate < x2, 0.0, z2 > translate < 3.1, 0.0,-1.0 > } sphere { < 3.1, 0.0, -1.0 >, 0.3 pigment { color rgb < 1.0,1.0, 0.0 > } } } #end #macro base( x1, z1, x2, z2, x3, z3 ) union { cylinder { < -1.1, -2.0, 0.0 >, < -1.1, 2.0, 0.0 >, 1.0 pigment { color rgb < 1.0,1.0, 0.0 > } } object { braco( x1, z1, x2, z2 ) rotate < x3, 0.0, z3 >} sphere { < 0.0, 0.0, 0.0 >, 0.4 pigment { color rgb < 1.0,1.0, 0.0 > } } } #end //object { base( 0.0, 0.0, 0.0, 0.0, 0.0, 0.0 ) } #declare nh = 4; #declare nv = 5; #declare nquadros = nh * nv; #declare cini = 0.0; #declare cfin = 1.0; #declare cpasso = ( ( cfin - cini ) / ( nquadros - 0.9999 ) ); #declare ck = cini; #declare iv = 0; /* #declare c0 = 0.0; #declare c1 = 0.16; #declare c2 = 0.32; #declare c3 = 0.48; #declare c4 = 0.64; #declare c5 = 0.0; */ #declare c0 = 0.0; #declare c1 = 0.20; #declare c2 = 0.40; #declare c3 = 0.60; #declare c4 = 0.80; #declare c5 = 0.0; #declare alfa1 = 0; #declare beta1 = 0; #declare alfa2 = 0; #declare beta2 = 0; #declare alfa3 = 0; #declare beta3 = 0; #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 alfa1 = ss * 0.0 + rr * 00.0; #declare beta1 = ss * 0.0 + rr * 00.0; #end #if ( ( ck >= c1 ) & ( ck < c2 ) ) #declare rr = ( ck - c1 ) / ( c2 - c0 ); #declare ss = ( c2 - ck ) / ( c2 - c0 ); #declare alfa2 = ss * 0.0 + rr * 90.0; #declare beta2 = ss * 0.0 + rr * 90.0; #end #if ( ( ck >= c2 ) & ( ck < c3 ) ) #declare rr = ( ck - c2 ) / ( c3 - c0 ); #declare ss = ( c3 - ck ) / ( c3 - c0 ); #declare alfa2 = ss * 0.0 + rr * 50.0; #declare beta2 = ss * 0.0 + rr * 50.0; #declare alfa3 = ss * 0.0 + rr * 50.0; #declare beta3 = ss * 0.0 + rr * 50.0; #end #if ( ( ck >= c3 ) & ( ck < c4 ) ) #declare rr = ( ck - c3 ) / ( c4 - c0 ); #declare ss = ( c4 - ck ) / ( c4 - c0 ); // #declare alfa = ss * 10 + rr * 40; // #declare beta = ss * 30 + rr * 10; #end #if ( ( ck >= c4 ) & ( ck < c5 ) ) #declare rr = ( ck - c4 ) / ( c5 - c0 ); #declare ss = ( c5 - ck ) / ( c5 - c0 ); // #declare alfa = ss * 10 + rr * 40; // #declare beta = ss * 30 + rr * 10; #end object { base( alfa1, beta1, alfa2, beta2, alfa3, beta3 ) translate < ( ih + 0.5 ) /nh * 50, ( iv + 0.5 ) / nv * 40, ( iv + 0.5 ) / nv * 40 > } #declare ck = ck + cpasso; #declare ih = ih + 1; #end #declare iv = iv + 1; #end // Original camera parameters: // #local cam_ctr = < 10.0, 5.0, 0.0 > // #local cam_vec = (< 0.0, 0.0, -20.0 >-< 10.0, 5.0, 0.0 >) // #local cam_sky = z #include "camlight.inc" camlight(<50/2,40/2,40/2-6>,<-3,-10,5>,90.0,z,1.0)