// MC930 - Trabalho prático 3 - 1s2003 // Last edited on 2003-05-29 04:50:58 by stolfi // Artur Manoel Passos RA 001388 #include "colors.inc" background{ Turquoise } light_source { 10*< 15.00, 3.00, -20.00 > color rgb < 2.00, 2.00, 2.00 > } light_source { 10*< 35.00, 3.00, 20.00 > color rgb < 2.00, 2.00, 2.00 > } camera { location 0.60*< 50.00, 0.00, -30.00 > right x up y sky y look_at < 0.00, 0.50, -5.00 > } plane { y, -11.1 pigment { checker color Yellow color Green 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 #declare GRAU1 = -1*GRAU3 - GRAU2; #declare GRAU1b = -1*GRAU3b - GRAU2b; #declare DESLOC = -6*clock; #declare peperna1 = union { cylinder{ <0, 0, 0> <0, 6, 0> 1.1 pigment {DarkBrown} } sphere { <0, 0, -0.5> 1.2 pigment {Copper} scale <1, 0.8, 2> rotate } // Pé } #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} } sphere { <0, 0, -0.5> 1.2 pigment {Copper} scale <1, 0.8, 2> rotate } // Pé } #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 resto = union { sphere { <2.1, 4.2, 0>, 2 pigment {DarkBrown} } // Ombro direito sphere { <-2.1, 4.2, 0>, 2 pigment {DarkBrown} } // Ombro direito cylinder{ <2.1,4.2, 0> <5.6, 1.7, -3.5> 1 pigment {DarkBrown} } // Braço direito cylinder{ <-2.1,4.2, 0> <-6.6, 1.7, -1.5> 1 pigment {DarkBrown} } // Braço esquerdo sphere { <5.6, 1.7, -3.5> 1.1 pigment {DarkBrown} } // Cotovelo direito sphere { <-6.6, 1.7, -1.5> 1.1 pigment {DarkBrown} } // Cotovelo esquerdo cylinder{ <5.6, 1.7, -3.5> <2.2, 0.7, -6.5> 1 pigment {DarkBrown} } // Antebraço direito cylinder{ <-6.6, 1.7, -1.5> <-7, 5.8, -2.5> 1 pigment {DarkBrown} } // Antebraço esquerdo sphere { <2.2, 0.7, -6.5,> 1.2 pigment {Copper} } //Mão direita sphere { <-7, 5.8, -2.5> 1.2 pigment { Copper } } // Mão esquerda } #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 {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>}