// Last edited on 2003-12-14 17:53:07 by stolfi // Exemplo de arquivo de descricao de cena para POV-ray // ====================================================================== #declare zoom = 2; #declare ctr = < 0, -4, -5 > + <0,0,140*clock>; #declare camDir = < -40, 25, -20 >; camera { location ctr + 1.70*camDir right -1.0*x up 0.75*y sky y look_at ctr } // ====================================================================== // FONTES DE LUZ light_source { 1000 * < -50.0, 80.0, 000.0 > // Posição da lâmpada. color rgb 0.6 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 1000 * < -50, 70.0, +5.0 > // Posição da lâmpada. color rgb 0.4 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } light_source { 1000 * < -50.0, 70.0, -5.0 > // Posição da lâmpada. color rgb 0.4 * < 1.00, 1.00, 1.00 > // Intensidade e corda luz. } // ====================================================================== // DESCRIÇÃO DA CENA #declare C = 1/255; background{ color rgb < 0.75, 0.80, 0.85 > } #declare raio = 0.500; #declare azul = texture { pigment { color rgb < 0.10, 0.80, 1.00 > } finish { diffuse 0.8 specular 0.3 roughness 0.005 ambient 0.1 } } #declare amarelo = texture { pigment { color rgb < 1.00, 0.80, 0.10 > } finish { diffuse 0.8 specular 0.3 roughness 0.005 ambient 0.1 } } #declare vermelho = texture { pigment { color rgb < 1.0, 0.0, 0.0 > } finish { diffuse 0.8 specular 0.3 roughness 0.005 ambient 0.1 } } #declare verde = texture { pigment { color rgb < 0.0, 1.0, 0.0 > } finish { diffuse 0.8 specular 0.3 roughness 0.005 ambient 0.1 } } #declare laranja = texture { pigment { color rgb < 160*C, 140*C, 70*C > } finish { diffuse 0.8 specular 0.3 roughness 0.005 ambient 0.1 } } #declare preto = texture { pigment { color rgb < 10*C, 15*C, 20*C > } finish { diffuse 0.8 specular 0.3 roughness 0.05 ambient 0.1 } } // Objetos // Os eixos para auxilio #declare eixo_x = cylinder { < -50, 0, 0 >, < 50, 0, 0 >, 0.1 texture { vermelho } } #declare eixo_y = cylinder { < -50, 0, 0 >, < 50, 0, 0 >, 0.1 texture { verde } rotate <0,0,90> } #declare eixo_z = cylinder { < -50, 0, 0 >, < 50, 0, 0 >, 0.1 texture { azul } rotate <90,90,0> } #declare eixos = union{ object{eixo_x} object{eixo_y} object{eixo_z} } //O Chao #declare chao = plane{ y, 0 texture{ pigment{ checker color rgb <0.7,0.6,0.5>, color rgb <0.6,0.5,0.2> } finish{ diffuse 0.7 ambient 0.3 } scale 0.25*140 } translate <0,-23,0> } ///////// BARATA /////// #declare f=0.9; #declare s=seed(23487564); #declare counter=0; #if (clock < 0.5) #declare clock0 = 2*clock; #else #declare clock0 = 2 - 2*clock; #end #declare clock1 = mod(clock +0.5,1); #declare pernas = union { #while ( counter < 6 ) //Angulos e posicoes #declare ang_peh1_y=-90; #declare ang_tibia1_y=30; #declare ang_tibia1_x=0; #declare ang_sub_coxa1_x=0; #declare ang_sub_coxa1_y=0; #declare ang_sub_coxa1_z=-30; #declare ang_coxa1_x=30 - 60*clock0; #declare ang_coxa1_y=-30 + 60*clock0; #declare ang_coxa1_z=-30 + 60*clock0; // #declare ang_peh2_y=-90; #declare ang_tibia2_y=30; #declare ang_tibia2_x=0; #declare ang_sub_coxa2_x=0; #declare ang_sub_coxa2_y=0; #declare ang_sub_coxa2_z=-30; #declare ang_coxa2_x=-30 + 60*clock0; #declare ang_coxa2_y=30 - 60*clock0; #declare ang_coxa2_z=30 - 60*clock0; // #declare pos_pata_sup=<7.3,0,12.5>; #declare pos_pata_med=<8,0,0>; #declare pos_pata_inf=<7.3,0,-13.5>; #if ( counter < 3 ) // PEH #declare peh = union{ sphere{ <0,0,0>, 1.5 texture {vermelho} } box { <0,-2,1>, <8,2,-1> texture {amarelo} } } // TIBIA #declare tibia = union{ sphere{ <0,0,0>,1.5 texture{vermelho} } cylinder{ <0,0,0>, <10,0,0>, 1 texture {amarelo} } object{ peh rotate <0,ang_peh1_y,0> translate <10,0,0> } } // SUB COXA #declare sub_coxa = union{ sphere{ <0,0,0>,1.5 texture{vermelho} } cylinder{ <0,0,0>, <10,0,0>, 1 texture {amarelo} } object { tibia rotate translate <10,0,0> } } // COXA #declare coxa= union{ cone{ <0,0,0>,2.5 <10,0,0>,1.5 texture{ verde} } object { sub_coxa rotate translate <10,0,0> } } object { coxa #switch ( counter ) #case (0) rotate translate pos_pata_inf scale<1,1,1>*f #break #case (1) rotate translate pos_pata_med scale <-1,1,1>*f #break #case (2) rotate translate pos_pata_sup scale<1,1,1>*f #break #end //switch } #else // PEH #declare peh = union{ sphere{ <0,0,0>, 1.5 texture {vermelho} } box { <0,-2,1>, <8,2,-1> texture {amarelo} } } // TIBIA #declare tibia = union{ sphere{ <0,0,0>,1.5 texture{vermelho} } cylinder{ <0,0,0>, <10,0,0>, 1 texture {amarelo} } object{ peh rotate <0,ang_peh2_y,0> translate <10,0,0> } } // SUB COXA #declare sub_coxa = union{ sphere{ <0,0,0>,1.5 texture{vermelho} } cylinder{ <0,0,0>, <10,0,0>, 1 texture {amarelo} } object { tibia rotate translate <10,0,0> } } // COXA #declare coxa= union{ cone{ <0,0,0>,2.5 <10,0,0>,1.5 texture{ verde} } object { sub_coxa rotate translate <10,0,0> } } object { coxa #switch ( counter ) #case (3) rotate translate pos_pata_inf scale <-1,1,1>*f #break #case (4) rotate translate pos_pata_med scale<1,1,1>*f #break #case (5) rotate translate pos_pata_sup scale <-1,1,1>*f #break #end //switch } #end //if #declare counter=counter+1; #end //while } // CORPO #declare corpo = union { sphere{ <0,0,0>,8 scale<1,0.3,3>*1.2 texture {azul} } sphere{ <0,0,0>,1 texture{vermelho} translate<3,-3,23> scale<1,1,1> } sphere{ <0,0,0>,1 texture{vermelho} translate<3,-3,23> scale<-1,1,1> } cone{ <0,0,0>,3 <0,0,-2>,0 texture{amarelo} scale<1,0.3,1> translate<0,-3,22> } } //------------------------ #declare postes = union{ object{ cylinder{ <60,-20,210>, <60,70,210>, 5 texture{azul} } } object{ cylinder{ <60,-20,140>, <60,70,140>, 5 texture{azul} } } object{ cylinder{ <60,-20,70>, <60,70,70>, 5 texture{azul} } } object{ cylinder{ <60,-20,0>, <60,70,0>, 5 texture{azul} } } object{ cylinder{ <60,-20,-70>, <60,70,-70>, 5 texture{azul} } } object{ cylinder{ <60,-20,-210>, <60,70,-210>, 5 texture{azul} } } } // Aqui está a cena, finalmente: union{ object{ chao } object{ pernas translate <0,0,140*clock> } object{ corpo translate <0,0,140*clock> } object {postes } }