// Exemplo de arquivo de descricao de cena para POV-ray // Last edited on 2003-03-18 18:00:00 by evandro #include "colors.inc" #include "stones.inc" #include "textures.inc" background{ color rgb <0.4, 0.4, 0.9> } camera { location <0,2,10> right <1.0, 0, 0> up <0, 0.75, 0> look_at <0,0,-2> } light_source { <10, 10, 19> color White } light_source { <10, 10, 20> color White } #if (clock < 0.25) #declare angulo_braco = 200 * clock; #declare angulo_tornozelo_esquerdo = 200 * clock; #declare angulo_tornozelo_direito = 0; #declare angulo_joelho_esquerdo = -125 * clock; #declare angulo_joelho_direito = 0; #declare angulo_quadril_esquerdo = 75 * clock; #declare angulo_quadril_direito = 0; #declare movimento_circular_robo = -50 * clock; #declare movimento_eixo_x = 0.5; #declare variacao_eixo_x = 0; #declare movimento_eixo_z = 0; #else #if (clock < 0.50) #declare angulo_braco = 50 - ( 200 * (clock - 0.25)); #declare angulo_tornozelo_esquerdo = 50 - ( 200 * (clock - 0.25)); #declare angulo_tornozelo_direito = 0; #declare angulo_joelho_esquerdo = -31.25 + ( 125 * (clock - 0.25)); #declare angulo_joelho_direito = 0; #declare angulo_quadril_esquerdo = 18.75 - ( 75 * (clock - 0.25)); #declare angulo_quadril_direito = 0; #declare movimento_circular_robo = -50 * clock; #declare movimento_eixo_x = 0.5; #declare variacao_eixo_x = 0; #declare movimento_eixo_z = 0; #else #if (clock < 0.75) #declare angulo_braco = -200 * (clock - 0.50); #declare angulo_tornozelo_esquerdo = 0; #declare angulo_tornozelo_direito = 200 * (clock - 0.50); #declare angulo_joelho_esquerdo = 0; #declare angulo_joelho_direito = -125 * (clock - 0.50); #declare angulo_quadril_esquerdo = 0; #declare angulo_quadril_direito = 75 * (clock - 0.50); #declare movimento_circular_robo = -25 + ( 50 * (clock - 0.50)); #declare movimento_eixo_x = -0.5; #declare variacao_eixo_x = -0.094; #declare movimento_eixo_z = 0.42; #else #declare angulo_braco = -50 + ( 200 * (clock - 0.75)); #declare angulo_tornozelo_esquerdo = 0; #declare angulo_tornozelo_direito = 50 - ( 200 * (clock - 0.75)); #declare angulo_joelho_esquerdo = 0; #declare angulo_joelho_direito = -31.25 + ( 125 * (clock - 0.75)); #declare angulo_quadril_esquerdo = 0; #declare angulo_quadril_direito = 18.75 - ( 75 * (clock - 0.75)); #declare movimento_circular_robo = -25 + ( 50 * (clock - 0.50)); #declare movimento_eixo_x = -0.5; #declare variacao_eixo_x = -0.094; #declare movimento_eixo_z = 0.42; #end #end #end #declare metade_cabeca_robo = union { sphere { <0, 1.5, 0>, 0.5 scale <1, 2, 1> pigment {Grey} normal {granite 1 scale 0.9} } sphere { <-0.2, 3.5, 0.4>, 0.1 pigment {Red} } sphere { <+0.2, 3.5, 0.4>, 0.1 pigment {Red} } difference { cylinder { <0, 3.25, 0>, <0, 2.75, 2>, 0.1 pigment {Green} } union { sphere { <-0.5, 2.7, 2>, 0.04 pigment {Black} } sphere { <+0.5, 2.7, 2>, 0.04 pigment {Black} } } } } #declare boca_robo = sphere { <0, 2.5, 0.5>, 0.2 scale <2, 1, 1> pigment {White} } #declare cabeca_robo = difference { object { metade_cabeca_robo } object { boca_robo } } #declare corpo_robo = difference { cylinder { <0, 0, 0>, <0, +2, 0>, 1 pigment {Grey} normal {granite 1 scale 0.9} } cylinder { <-1, 1, 0.15>, <+1, 1, 0.15>, 0.35 pigment {Blue} } } #declare ombro_robo = union { sphere { <-1, 1, 0>, 0.3 pigment {SkyBlue} } cylinder { <-2, 1, 0>, <-1, 1, 0>, 0.3 pigment {SkyBlue} normal {granite 1 scale 0.9} } } #declare cotovelo_robo = sphere { <-2, 1, 0>, 0.3 pigment {SkyBlue} } #declare pulso_robo = union { cylinder { <-4, 1, 0>, <-2, 1, 0>, 0.3 pigment {SkyBlue} normal {granite 1 scale 0.9} } cylinder { <-3.9, 1.35, 0>, <-3.9, 1.6, 0>, 0.1 pigment {SkyBlue} } cylinder { <-4.1, 0.8, 0>, <-4.4, 0.8, 0>, 0.05 pigment {SkyBlue} } cylinder { <-4.1, 1.0, 0>, <-4.4, 1.0, 0>, 0.05 pigment {SkyBlue} } cylinder { <-4.1, 1.2, 0>, <-4.4, 1.2, 0>, 0.05 pigment {SkyBlue} } } #declare braco_robo = union { object { ombro_robo } object { cotovelo_robo } object { pulso_robo translate <2,-1,0> rotate <0,0,90> translate <-2,1,0> } } #declare tornozelo_robo = sphere { <0, 0, 0>, 0.3 pigment {Green} normal {granite 1 scale 0.9} } #declare pe_robo = box { <1, -0.15, 0.15>, <0.0, +0.15, -0.15> pigment {Green} normal {granite 1 scale 0.9} } #declare canela_robo = cylinder { <0, 0, 0>, <0, 1.5, 0>, 0.3 pigment {SeaGreen} normal {granite 1 scale 0.9} } #declare metade_perna_esquerda = union { object { canela_robo } object { tornozelo_robo } object { pe_robo rotate <0, 0, angulo_tornozelo_esquerdo> } } #declare metade_perna_direita = union { object { canela_robo } object { tornozelo_robo } object { pe_robo rotate <0, 0, angulo_tornozelo_direito> } } #declare joelho_robo = sphere { <0, 0, 0>, 0.4 pigment {Green} normal {granite 1 scale 0.9} } #declare coxa_robo = cylinder { <0, 0, 0>, <-0.2, 1.5, 0>, 0.3 pigment {SeaGreen} normal {granite 1 scale 0.9} } #declare perna_esquerda = union { object { coxa_robo } object { joelho_robo } object { metade_perna_esquerda translate <0, -1.5, 0> rotate <0, 0, angulo_joelho_esquerdo> } } #declare perna_direita = union { object { coxa_robo } object { joelho_robo } object { metade_perna_direita translate <0, -1.5, 0> rotate <0, 0, angulo_joelho_direito> } } #declare robo = union { object { cabeca_robo } object { corpo_robo } object { braco_robo scale <1, 1, 1> translate <0,-1,0> rotate <-angulo_braco,0,0> translate <0,1,0> } object { braco_robo scale <-1, 1, 1> translate <0,-1,0> rotate <+angulo_braco,0,0> translate <0,1,0> } object { perna_esquerda translate <0.5, -1.5, 0> rotate <0, 0, angulo_quadril_esquerdo> } object { perna_direita translate <0.5, -1.5, 0> rotate <0, 0, angulo_quadril_direito> scale <-1,1,1> } } #declare chao = plane { <0, 1, 0>, -3.155 texture {T_Stone14} } union { object { robo translate rotate <0,movimento_circular_robo,0> translate <-movimento_eixo_x+variacao_eixo_x,0,movimento_eixo_z> } object { chao } }