// MC930 - Trabalho prático 3 - 1s2003 // Last edited on 2003-05-29 18:45:57 by stolfi // Artur Manoel Passos RA 001388 #include "colors.inc" background{ Turquoise } #declare ctr = < 0, 0, -9.5 >; camera { location 1.1*< 60.00, 0.00, 0 > + ctr right < 0.60, 0.00, 0.00 > up < 0.00, 0.00, 0.60 > sky < 0.00, 1.00, 0.00 > look_at ctr } light_source { 10*< 45.00, 30.00, 20.00 > //< 5.00, 3.00, -20.00 > color rgb 0.9*< 1,1,1 > } light_source { 10*< 45.00, 30.00, -20.00 > //< 5.00, 3.00, -20.00 > color rgb 1.2*< 1,1,1 > } plane { y, -11.1 pigment { checker color Green, color Yellow scale 3 } } //GRAU1 e GRAU1B são angulos do tornozelo //GRAU2 e GRAU2B são angulos do joelho //GRAU3 e GRAU3B são angulos do quadril //ALTURA é a variação vertical em função do tempo //DESLOC é a variação horizontal em função do tempo #if (clock<=0.25) #declare GRAU2 = -clock*200; #declare GRAU2b = 0; #declare GRAU3 = -25 + (clock*400); #declare GRAU3b = 25 - (clock*100); #declare ALTURA = clock*3.6; #else #if (clock <=0.5) #declare GRAU2 = -50 + (clock-0.25)*200; #declare GRAU2b = 0; #declare GRAU3 = 50 - ((clock-0.25)*100); #declare GRAU3b = 25 - (clock*100); #declare ALTURA = 0.8 - (clock-0.25)*3.6; #else #if (clock <=0.75) #declare GRAU2 = 0; #declare GRAU2b = -(clock-0.5)*200; #declare GRAU3 = 25 - ((clock-0.5)*100); #declare GRAU3b = -25 + ((clock-0.5)*400); #declare ALTURA = (clock-0.5)*3.6; #else #declare GRAU2 = 0; #declare GRAU2b = -50 + (clock-0.75)*200; #declare GRAU3 = 25 - (clock-0.5)*100; #declare GRAU3b = 50 - ((clock-0.75)*100); #declare ALTURA = 0.8 - (clock-0.75)*3.6; #end #end #end #if (clock <=0.5) #declare GRAU4 = -40 + 160 *clock; #else #declare GRAU4 = 40 - 160 *(clock-0.5); #end #declare GRAU1 = -1*GRAU3 - GRAU2; #declare GRAU1b = -1*GRAU3b - GRAU2b; #declare DESLOC = -21.0985*clock; #declare peperna1 = union { cylinder{ <0, 0, 0> <0, 6, 0> 1.1 pigment {DarkBrown} } box {<-1.3 ,-0.7 ,-2.5 > <1.3 ,0.7 ,1.2> rotate pigment {Copper} } } #declare perna1 = union { cylinder { <0, 6, 0> <0, 0, 0> 1.2 pigment {DarkBrown} } // Coxa sphere { <0, 0, 0> 1.3 pigment {DarkBrown}} // Joelho object {peperna1 translate <0, -6, 0> rotate } } #declare peperna2 = union { cylinder{ <0, 0, 0> <0, 6, 0> 1.1 pigment {DarkBrown} } box {<-1.3 ,-0.7 ,-2.5 > <1.3 ,0.7 ,1.2> rotate pigment {Copper} } } #declare perna2 = union { cylinder { <0, 6, 0> <0, 0, 0> 1.2 pigment {DarkBrown} } // Coxa sphere { <0, 0, 0> 1.3 pigment {DarkBrown}} // Joelho object {peperna2 translate <0, -6, 0> rotate } } #declare cabeca = union { cylinder{ <0, 5, 0> <0, 6.5, 0> 1.1 pigment {DarkBrown}} // Pescoço sphere { <0, 8, 0> 2.2 pigment {DarkBrown}} // Cabeça sphere { <2.2, 4 ,-1> 0.5 pigment {Copper} scale <1, 2, 0.5> } // Orelha direita sphere { <-2.2, 4 ,-1> 0.5 pigment {Copper} scale <1, 2, 0.5> } // Orelha esquerda } #declare braco = union { cylinder{ <0, 0, 0> <0, -4, 0> 1 pigment {DarkBrown} } // Braço direito sphere { <0, -4, 0> 1.1 pigment {DarkBrown} } // Cotovelo direito cylinder{ <0, -4, 0> <0, -8, 0> 1 pigment {DarkBrown} } // Antebraço direito sphere { <0, -8.2, 0,> 1.2 pigment {Copper} } //Mão direita } #declare resto = union { sphere { <2.1, 4.2, 0>, 2 pigment {DarkBrown} } // Ombro direito sphere { <-2.1, 4.2, 0>, 2 pigment {DarkBrown} } // Ombro esquerdo } #declare corpo = union { object {cabeca translate <0, 3, 0>} object {resto translate <0, 3, 0>} sphere { <0, 0, 0>, 2 pigment {DarkBrown} scale <1.5, 3, 1> translate <0, 3, 0> }// Tronco object {braco rotate translate <2.1,7.2,0> } object {braco rotate <-1*GRAU4, 0, -10> translate <-2.1, 7.2, 0>} object {perna1 translate <0, -6, 0> rotate translate <0.9, 0.6, 0>} object {perna2 translate <0, -6, 0> rotate translate <-0.9, 0.6, 0>} } object {corpo translate <0, ALTURA, DESLOC>}