// Last edited on DATE TIME by USER // Processed by remove-cam-lights global_settings { max_trace_level 10 } #declare vv = < 30, 30, 15 >; #declare uu = vrotate( vv, < 160 * clock, 0, 360 * clock > ); background { color rgb < 0.75, 0.80, 0.85 > } #declare colorDarkBlue = texture { pigment { color rgb < 0.00, 0.00, 0.80 > } finish { diffuse 0.8 specular 0.1 roughness 0.205 ambient 0.1 } } #declare colorLightBlue = texture { pigment { color rgb < 0.00, 0.40, 1.00 > } finish { diffuse 0.8 specular 0.1 roughness 0.205 ambient 0.1 } } #declare colorDarkGreen = texture { pigment { color rgb < 0.00, 0.80, 0.00 > } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #declare colorLightGreen = texture { pigment { color rgb < 0.00, 1.00, 0.00 > } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #declare colorYellow = texture { pigment { color rgb < 1.00, 1.00, 0.00 > } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #declare colorGlassRed = texture { pigment { color rgb < 0.95, 0.05, 0.05 > filter 0.8 } finish { diffuse 0.1 ambient 0.1 } } #declare colorGlassRed1 = texture { pigment { color rgb < 0.95, 0.05, 0.05 > transmit 0.8 } finish { diffuse 0.1 ambient 0.1 } } #declare colorRed = texture { pigment { color rgb < 1.00, 0.00, 0.00 > } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #declare colorBrown = texture { pigment { color rgb < 0.90, 0.90, 0.75 > } finish { diffuse 0.8 specular 0.1 roughness 0.005 ambient 0.1 } } #declare colorGrey = texture { pigment { color rgb < 0.70, 0.70, 0.70 > } finish { diffuse 0.8 specular 0.1 roughness 0.205 ambient 0.1 } } #declare colorGlassGrey = texture { pigment { color rgb < 0.70, 0.70, 0.70 > filter 0.8 } finish { diffuse 0.1 specular 0.5 roughness 0.205 ambient 0.1 } } #declare colorMetalGrey1 = texture { pigment { color rgb < 0.70, 0.70, 0.70 > } finish { diffuse 0.1 ambient 0.1 reflection 0.8 } } #declare colorMetalGrey2 = texture { pigment { color rgb < 0.50, 0.50, 0.50 > } finish { diffuse 0.3 ambient 0.2 reflection 0.5 } } #declare colorArray = array[6] {colorDarkBlue,colorLightBlue,colorDarkGreen,colorLightGreen,colorYellow,colorRed}; #declare eixos = merge { box { < 0, 0, 0 > , < 10, 0.1, 0.1 > texture { colorDarkBlue } } box { < 0, 0, 0 > , < 0.1, 10, 0.1 > texture { colorDarkGreen } } box { < 0, 0, 0 > , < 0.1, 0.1, 10 > texture { colorRed } } } #declare garfo = merge { box { < -0.90, 0, 0 >, < -0.70, 1.7, 0.1 > texture { colorGrey } } box { < -0.10, 0, 0 >, < 0.10, 1.5, 0.1 > texture { colorGrey } } box { < 0.70, 0, 0 >, < 0.90, 1.7, 0.1 > texture { colorGrey } } box { < -0.90, -1.0, 0 >, < 0.90, 0, 0.1 > texture { colorGrey } } } #declare faca = box { < 0, 0, 0 >, < 0.1, 2.7, 0.8 > texture { colorGrey } } #declare base = cylinder { < 0, 0, -0.1 >, < 0, 0, 0.1 >, 4 texture { colorYellow } } #macro mao_direita() union { sphere { < 0, 0, 0 >, 0.8 texture { colorMetalGrey1 } } cylinder { < 0.5, 0, 0 >, < 5.5, 0, 0 >, 0.5 texture { colorGrey } } object { garfo rotate < 0, 0, 270 > translate < 5.8, 0, 0 > } } #end #macro mao_esquerda() union { sphere { < 0, 0, 0 >, 0.8 texture { colorMetalGrey1 } } cylinder { < 0.5, 0, 0 >, < 5.5, 0, 0 >, 0.5 texture { colorGrey } } object { faca rotate < 0, 0, 270 > translate < 5.5, 0, -0.4 > } } #end #macro antebraco_direito(m_vert,m_horz) union { sphere { < 0, 0, 0 >, 0.8 texture { colorMetalGrey1 } } cylinder { < 0.5, 0, 0 >, < 5.5, 0, 0 >, 0.5 texture { colorGrey } } object { mao_direita() rotate < 0, m_vert, m_horz > translate < 5.8, 0, 0 > } } #end #macro antebraco_esquerdo(m_vert,m_horz) union { sphere { < 0, 0, 0 >, 0.8 texture { colorMetalGrey1 } } cylinder { < 0.5, 0, 0 >, < 5.5, 0, 0 >, 0.5 texture { colorGrey } } object { mao_esquerda() rotate < 0, -m_vert, -m_horz > translate < 5.8, 0, 0 > } } #end #macro braco_direito(b_vert,b_horz,m_vert,m_horz) union { sphere { < 0, 0, 0 >, 0.8 texture { colorMetalGrey1 } } cylinder { < 0.5, 0, 0 >, < 5.5, 0, 0 >, 0.5 texture { colorGrey } } object { antebraco_direito(m_vert,m_horz) rotate < 0, b_vert, b_horz > translate < 5.8, 0, 0 > } } #end #macro braco_esquerdo(b_vert,b_horz,m_vert,m_horz) union { sphere { < 0, 0, 0 >, 0.8 texture { colorMetalGrey1 } } cylinder { < 0.5, 0, 0 >, < 5.5, 0, 0 >, 0.5 texture { colorGrey } } object { antebraco_esquerdo(m_vert,m_horz) rotate < 0, -b_vert, -b_horz > translate < 5.8, 0, 0 > } } #end #macro tronco(te_vert,td_vert,te_horz,td_horz,be_vert,bd_vert,be_horz,bd_horz,me_vert,md_vert,me_horz,md_horz) union { sphere { < 0, 0, 0 >, 0.8 texture { colorMetalGrey1 } } cylinder { < 0, 0, 0.5 >, < 0, 0, 8.5 >, 0.5 texture { colorGrey } } object { braco_direito(bd_vert,bd_horz,md_vert,md_horz) rotate < td_vert, 0, td_horz > translate < 0, 0, 8.8 > rotate < 0, 0, 0 > } object { braco_esquerdo(be_vert,be_horz,me_vert,me_horz) rotate < -te_vert, 0, -te_horz > translate < 0, 0, 8.8 > rotate < 0, 0, 90 > } } #end plane { z , 0 texture { pigment { checker rgb < 1.0, 1.0, 1.0 >, rgb < 0.41, 0.41, 0.41 > } finish { diffuse 0.5 ambient 0.5 } } scale 2 } #declare nh = 5.0; #declare nv = 6.0; #declare nquadros = nh * nv; #declare c_ini = 0.0; #declare c_fim = 1.0; #declare c_passo = (c_fim - c_ini)/(nquadros-0.9999); #declare c0 = 0.00; #declare c1 = 0.20; #declare c2 = 0.40; #declare c3 = 0.60; #declare c4 = 0.80; #declare c5 = 1.00; #declare ck = c_ini; #macro quadro(ck) #if ((ck >= c0) & (ck < c1)) #declare rr = (ck - c0)/(c1-c0); #declare ss = (c1-ck)/(c1-c0); #declare md_horz = ss*00 + rr*90; #declare bd_horz = ss*00 + rr*00; #declare bd_vert = ss*00 + rr*00; #declare me_horz = ss*00 + rr*00; #end #if ((ck >= c1) & (ck < c2)) #declare rr = (ck - c1)/(c2-c1); #declare ss = (c2-ck)/(c2-c1); #declare md_horz = ss*90 + rr*45; #declare bd_horz = ss*00 + rr*45; #declare bd_vert = ss*00 + rr*30; #declare me_horz = ss*00 + rr*30; #end #if ((ck >= c2) & (ck < c3)) #declare rr = (ck - c2)/(c3-c2); #declare ss = (c3-ck)/(c3-c2); #declare md_horz = ss*45 + rr*60; #declare bd_horz = ss*45 + rr*30; #declare bd_vert = ss*30 - rr*60; #declare me_horz = ss*30 + rr*30; #end #if ((ck >= c3) & (ck < c4)) #declare rr = (ck - c3)/(c4-c3); #declare ss = (c4-ck)/(c4-c3); #declare md_horz = ss*60 + rr*90; #declare bd_horz = ss*30 + rr*00; #declare bd_vert = ss*(-60) + rr*00; #declare me_horz = ss*30 + rr*00; #end #if ((ck >= c4) & (ck < c5)) #declare rr = (ck - c4)/(c5-c4); #declare ss = (c5-ck)/(c5-c4); #declare md_horz = ss*90 + rr*00; #declare bd_horz = ss*00 + rr*00; #declare bd_vert = ss*00 + rr*00; #declare me_horz = ss*00 + rr*00; #end union { object { base } object { tronco(0,0,0,0,0,bd_vert,0,bd_horz,0,0,me_horz,md_horz) } } #end object { quadro(clock) } // Original camera parameters: // #local cam_ctr = <0.00,0.00,-10.00> // #local cam_vec = ((uu)-<0.00,0.00,-10.00>) // #local cam_sky = z #include "camlight.inc" camlight(<0.00,0.00,-10.00>,<10,10,10>,20.0,z,1.0)