// Last edited on DATE TIME by USER // Processed by remove-cam-lights #include "colors.inc" background{ color rgb < 0.75, 0.80, 0.85 > } #macro folha() union { box { < 0.0, -0.2, -0.3 > , < 5.0, 0.2, 0.3 > texture { pigment { rgb < 1.0, 0.0, 0.0 > } } } difference { sphere { < 6.0, 0.0, 0.0 >, 1.0 texture { pigment { rgb < 0.0, 0.0, 1.0 > } } } box { < 0.0, 0.2, -1.0 >, < 10.0, 2.0, 1.0 > } } } #end #macro punho() union { sphere { < 0.0, 0.0, 0.0 > , 2.0 texture { pigment { rgb < 0.0, 0.0, 1.0 > } } } object { folha() translate < 0.0, 0.0, 0.0 > } } #end #macro antebraco( rotaciona_x_punho, rotaciona_y_punho ) union { cylinder { < 0.0, 0.0, 0.0 > , < 10.0, 0.0, 0.0 >, 2.0 texture { pigment { rgb < 1.0, 0.0, 0.0 > } } } object { punho() rotate < rotaciona_x_punho, rotaciona_y_punho, 0.0 > translate < 10.0, 0.0, 0.0 > } } #end #macro braco( rotaciona_y_antebraco, rotaciona_x_punho, rotaciona_y_punho ) union { union { cylinder { < 0.0, 0.0, 0.0 > , < 10.0, 0.0, 0.0 >, 2.0 texture { pigment { rgb < 0.0, 0.0, 1.0 > } } } sphere { < 10.0, 0.0, 0.0 >, 2.0 texture { pigment { rgb < 0.0, 0.0, 1.0 > } } } } object { antebraco( rotaciona_x_punho, rotaciona_y_punho ) rotate < 0.0, rotaciona_y_antebraco, 0.0 > translate < 10.0, 0.0, 0.0 > } } #end #macro talheres_modernos( rotaciona_x_braco, rotaciona_z_braco, rotaciona_y_antebraco, rotaciona_x_punho, rotaciona_y_punho ) union { union { cylinder { < 0.0, 0.0, 0.0 > , < 0.0, 8.0, 0.0 >, 2.0 texture { pigment { rgb < 1.0, 0.0, 0.0 > } } } sphere { < 0.0, 8.0, 0.0 >, 2.0 texture { pigment { rgb < 1.0, 0.0, 0.0 > } } } } object { braco( rotaciona_y_antebraco, rotaciona_x_punho, rotaciona_y_punho ) rotate < rotaciona_x_braco, 0.0, rotaciona_z_braco > translate < 0.0, 8.0, 0.0 > } } #end #declare c0 = 0.0; #declare c1 = 0.2; #declare c2 = 0.4; #declare c3 = 0.6; #declare c4 = 0.8; #declare c5 = 1.0; #declare rotx_braco = 90.0; #declare roty_punho = 0.0; #macro quadro(ck) #if (( ck >= c0 ) & ( ck < c1 )) #declare rr = ((ck - c0)/(c1-c0)); #declare ss = ((c1-ck)/(c1-c0)); #declare rotz_braco = ss*30 + rr*60; #declare roty_abraco = ss*(-30) + rr*(-60); #declare rotx_punho = -90.0; #end #if (( ck >= c1 ) & ( ck < c2 )) #declare rr = ((ck - c1)/(c2-c1)); #declare ss = ((c2-ck)/(c2-c1)); #declare rotz_braco = ss*60 + rr*(-30); #declare roty_abraco = ss*(-60) + rr*(30); #declare rotx_punho = ss*(-90) + rr*0; #end #if (( ck >= c2 ) & ( ck < c3 )) #declare rr = ((ck-c2)/(c3-c2)); #declare ss = ((c3-ck)/(c3-c2)); #declare rotz_braco = -30.0; #declare roty_abraco = 30.0; #declare rotx_punho = ss*0 + rr*(-90); #end #if (( ck >= c3 ) & ( ck < c4 )) #declare rr = ((ck-c3)/(c4-c3)); #declare ss = ((c4-ck)/(c4-c3)); #declare rotz_braco = ss*(-30) + rr*(60); #declare roty_abraco = ss*30 + rr*(-60); #declare rotx_punho = -90.0; #end #if (( ck >= c4 ) & ( ck <= c5 )) #declare rr = ((ck-c4)/(c5-c4)); #declare ss = ((c5-ck)/(c5-c4)); #declare rotz_braco = ss*60 + rr*30; #declare roty_abraco = ss*(-60) + rr*(-30); #declare rotx_punho = -90.0; #end union{ object { talheres_modernos(rotx_braco, rotz_braco, roty_abraco, rotx_punho, roty_punho) } object { talheres_modernos(rotx_braco, rotz_braco, roty_abraco, rotx_punho, roty_punho) translate < 8.0, 0.0, -12.0 > } } #end object{ quadro( clock+0.2 ) } plane{ y, 0 texture { pigment { rgb < 0.0, 1.0, 0.0 > } finish { diffuse 0.5 ambient 0.5 } } } // Original camera parameters: // #local cam_ctr = <10.00,15.00,0.00> // #local cam_vec = (<20.00,25.00,80.00>-<10.00,15.00,0.00>) // #local cam_sky = y #include "camlight.inc" camlight(<10.00,15.00,0.00>,<10,10,10>,20.0,y,1.0)