// Ivan Francisco Coutinho Costa // Last edited on 2003-05-27 20:53:38 by stolfi // RA 001833 // MC930 - TP 3 - Macaco Mecanico // Data 18/03/2003 #include "colors.inc" #include "textures.inc" #include "metals.inc" background { color Black } camera { location 1.4*<-25, 5, -22> right 0.60*x up 0.60*y look_at <0,0.5,-6> } //light_source { <10, 20, -10> color White } light_source { 10*<-15, 8, 12> color 1.4*Pink } light_source { 10*<-10, 10, -20> color 1.4*White } plane { y, -10.0 texture { White_Wood } } #declare tronco = union { sphere { <0, 10, 0> 2.0 } sphere { <0, 0, 0> 2.0 } cylinder { <0,0,0>, <0,10,0>,2 } pigment { Brown } } #declare orelha = difference { sphere { <0, 0, 0>, 1.5 } sphere { <0, 0, .8>, 2.0 } pigment {Flesh} } #declare rabo= union { cylinder {<0,0,0>, <10,0,0>, 0.4 pigment {Brown} } // cilindro deitado no eixo x } #declare olho= sphere { <0,0,0>, .3 pigment { White } } #declare braco = union { sphere { <0,0,0>, 1.0 } cylinder { <0,0,0>, <0,-3, 0>, 1.0} cylinder { <0,-3,0>, < 2, -7, 0>, 0.8} sphere { <0,-3,0>, 1.0 } // a mao union { sphere { <2,-7,0>, 0.8 pigment {Flesh } } } pigment {Brown} } #declare beico= difference { sphere { <0,0,0>, 1.1 } box { <-1.1, 0, -1.1>, <1.1, 1.1, 1.1> } pigment {Flesh} } #declare canela= union { cylinder { <0,0,0>, <0,-5,0>, 1.0 } // canela union { // o pe sphere { <0,-5,0> 1 } cylinder {<0,-5,0>, <0,-5, -1>, 1.0 } sphere { <0,-5,-1>, 1 } pigment {Flesh} } pigment {Brown} } // ---------------- #if (mod (clock, 0.50) < 0.25 ) #declare teta=clock*30; #else #declare teta=3-((clock-0.25)*30); #end #if (teta > 0) #declare teta_canela=clock*15; #else #declare teta_canela=clock*-45; #end #declare perna_esquerda = union { sphere { <0,0,0>, 1.3 } cylinder { <0,0,0>, <0,-4,0>, 1.3 } // coxa sphere { <0,-4,0>, 1.3 } object { canela rotate translate <0,-4,0>} pigment { Brown } } #declare perna_direita = union { sphere { <0,0,0>, 1.3 } cylinder { <0,0,0>, <0,-4,0>, 1.3 } // coxa sphere { <0,-4,0>, 1.3 } object { canela rotate translate <0,-4,0>} pigment { Brown } } #declare corpo= union { object { tronco } object { orelha rotate <180,0,0> translate <-2.5,10,-1>} // orelha direita object { orelha rotate <180,0,0> scale <-1,1,1> translate <2.5,10,-1> } // orelha esquerda object { rabo rotate <0,290,0> rotate <0,0,0> translate <0,0,0> } // rabo unico object { olho translate <-1,10,-1.8> } // olho direito object { olho translate <1,10,-1.8> } // olho esquerdo object { beico rotate <-10, 0,0 > translate <0, 8, -2> } // beico inferior object { beico rotate <180,0,0> translate <0, 8, -2> } // beico superior } #declare macaco = union { object { corpo } object { perna_esquerda rotate translate <1.5,0,0> } // perna object { perna_direita rotate <-teta, 0,0> translate <1.5,0,0> scale <-1,1,1> } // perna object { braco rotate <0,100,0> rotate <0,0,-25> translate <-2, 6, 0>} // braco direito object { braco rotate <0,100,0> rotate <0,0,-25> scale <-1,1,1> translate <2,6,0> } // braco esquerdo } // a cena object { macaco translate <0,0,clock*-8> }