// Last edited on 2003-05-28 14:53:06 by stolfi #include "colors.inc" background{White} plane{ <0,1,0>,-3.5 texture{ pigment{ checker color rgb <1,1,1>, color rgb <1,0.9,0.7> } finish { ambient 0.1 diffuse 0.9 specular 0.2 roughness 0.1 } scale 3 } } camera { location 0.11*<100,0,-25> right 0.9*x up 0.9*y sky y look_at <0,-0.1,0> } light_source { 20*<15, 13, -20> color 1.2*White } light_source { 20*<15, 9, 5> color 0.8*White } #declare tinta_A = texture { pigment { color rgb < 1.00, 0.00, 0.00 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare tinta_B = texture { pigment { color rgb < 1.00, 0.80, 0.10 > } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare cabeca = sphere { < 0.00, 2.90, 0.00 >, 1.00 texture { tinta_B } } #declare olho = sphere { < +0.25, 3, -1.00 >, 0.1 texture { tinta_A } } #declare nariz = sphere { < 0, 2.5, -1.00 >, 0.3 texture { tinta_A } } #declare corpo = sphere { < 0.00, 0.00, 0.00 >, 1.30 scale < 0.00, 1.50, 0.00 > texture { tinta_B } } #declare braco = cylinder { < 0.0, 0.80, 0.00 > < -1.80, 0.30, 0.00 >, 0.25 translate <-0.5, 0, 0> texture { tinta_B } } #declare orelha = sphere { < 0, 2.9, 0 >, 0.4 translate <-1, 0, 0> texture { tinta_B } } #declare rabo = cylinder { < 0, -1.3, 0.0 > < -1.80, 0.60, 5.00 >, 0.25 texture { tinta_B } } #declare coxa = sphere { < 0, -1.1, 0 >, 0.5 scale <0, 2, 0> rotate <0, 0, 30> texture { tinta_B } } #declare canela = sphere { < 0, -1.8, 0 >, 0.5 scale <0, 1.5, 0> texture { tinta_B } } #declare pe = box { <1, -3, 0>, <2, -3.5, -1.5> texture { tinta_A } } /////////// Clock #if (clock < 0.25) //perna direita #declare cpd = clock*100*30/25; // angulo entre corpo e perna direita #declare pbd = 0; // angulo entre perna direita e bota direita //perna esquerda #declare cpe = 0; // angulo entre corpo e perna esquerda #declare pbe = 0; // angulo entre perna esquerda e bota esquerda //macaco #declare angulomacaco = 0; #else #if (clock < 0.5) //perna direita #declare cpd = 30; // angulo entre corpo e perna direita #declare pbd = (-1)*(clock-0.25)*100*30/25; // angulo entre perna direita e bota direita //perna esquerda #declare cpe = 0; // angulo entre corpo e perna esquerda #declare pbe = 0; // angulo entre perna esquerda e bota esquerda //macaco #declare angulomacaco = 0; #else //perna direita #declare cpd = 30; // angulo entre corpo e perna direita #declare pbd = -30; // angulo entre perna direita e bota direita //perna esquerda #declare cpe = 0; // angulo entre corpo e perna esquerda #declare pbe = 0; // angulo entre perna esquerda e bota esquerda //macaco #declare angulomacaco = (-1)*(clock-0.5)*100*10/50; #end #end /////////// Pedacos do Corpo do Macaco #declare botadir = union { object { canela translate <-1.4,0,0>} object { pe translate <-3,0,0>} } #declare botaesq = union { object { canela translate <1.4,0,0>} object { pe } } #declare pernadir = union { object { coxa scale <-1,1,1> } object { botadir translate <1.4,1.8,0> rotate translate <-1.4,-1.8,0>} } #declare pernaesq = union { object { coxa } object { botaesq rotate } } #declare macaco = union { object { braco } object { braco scale <-1,1,1>} object { corpo } object { cabeca } object { olho } object { olho scale <-1,1,1>} object { nariz } object { orelha } object { orelha scale <-1,1,1>} object { rabo } object { pernadir rotate } object { pernaesq rotate } } ////////// Montagem Final union { object { macaco rotate translate } }