//Caixa de Surpresas // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_fosca = texture{ pigment{ color rgb < 1.00, 0.80, 0.10 > } finish{ diffuse 0.9 ambient 0.1 } } #declare tx_color = texture{ pigment{ color rgb < 2.00, 0.40, 0.20 > } finish{ diffuse 0.9 ambient 0.1 } } // ====================================================================== // DESCRICAO DA CENA #include "eixos.inc" #declare NQ=6; #declare Fase=array[NQ] #declare Fase[0] = 0.0; #declare Fase[1] = 0.2; #declare Fase[2] = 0.4; #declare Fase[3] = 0.6; #declare Fase[4] = 0.8; #declare Fase[5] = 1.0; #declare Arm_r = array[NQ]; #declare Arm_r[0] = 45; #declare Arm_r[1] = 90; #declare Arm_r[2] = 135; #declare Arm_r[3] = 90; #declare Arm_r[4] = 45; #declare Arm_r[5] = 45; #declare Arm_l = array[NQ]; #declare Arm_l[0] = 45; #declare Arm_l[1] = 90; #declare Arm_l[2] = 135; #declare Arm_l[3] = 90; #declare Arm_l[4] = 45; #declare Arm_l[5] = 45; #declare Leg_r = array[NQ]; #declare Leg_r[0] = 0; #declare Leg_r[1] = 20; #declare Leg_r[2] = 40; #declare Leg_r[3] = 40; #declare Leg_r[4] = 20; #declare Leg_r[5] = 0; #declare Leg_l = array[NQ]; #declare Leg_l[0] = 0; #declare Leg_l[1] = 20; #declare Leg_l[2] = 40; #declare Leg_l[3] = 40; #declare Leg_l[4] = 20; #declare Leg_l[5] = 0; #macro arm_M (varHand) union{ cylinder { < 0, 0, 0 >, < 0, 0, -2.5 >, 0.50 texture{ tx_fosca }} object { Hand () rotate z*varHand translate < 0, 0, -3.1 > } } #end #macro Hand () box{< -0.6, -0.6, -0.6 >, < 0.6, 0.6, 0.6 > texture{ tx_fosca }} #end #macro Leg_B (varlegMed, varlegFoot) union{ cylinder{ < 0, 0, 0 >, < 0, 0, -2 >, 0.9 texture{ tx_fosca }} object {Leg_M (varlegFoot) rotate y*varlegMed translate < 0, 0, -2 >} } #end #macro Leg_M (varlegFoot) union{ cylinder { < 0, 0, 0 >, < 0, 0, -1.6 >, 0.70 texture{ tx_fosca }} object { Foot () rotate z*varlegFoot translate < 0, 0, -2.4 > } } #end #macro Foot () box{< -0.8, -0.8, -0.8 >, < 0.8, 0.8, 0.8 > texture{ tx_fosca }} #end #macro Animal (arm_r, hand_r, arm_l, hand_l, legBig_r, legMed_r, legFoot_r, legBig_l, legMed_l, legFoot_l) union{ sphere{ < 0, 0, 0 >, 2 texture{ tx_fosca }} box{< -0.8, -0.01, -0.08 >, < 0.8, 0.08, 0.08 > translate < -2, 1.5, 0 > texture{tx_fosca } } box{< -0.8, -0.01, -0.08 >, < 0.8, 0.08, 0.08 > translate < -2, 1.5, 0.3 > texture{tx_fosca } } box{< -0.8, -0.01, -0.08 >, < 0.8, 0.08, 0.08 > translate < -2, 1.5, -0.3 > texture{tx_fosca } } box{< -0.8, -0.01, -0.08 >, < 0.8, 0.08, 0.08 > translate < 2, 1.5, 0 > texture{tx_fosca } } box{< -0.8, -0.01, -0.08 >, < 0.8, 0.08, 0.08 > translate < 2, 1.5, 0.3 > texture{tx_fosca } } box{< -0.8, -0.01, -0.08 >, < 0.8, 0.08, 0.08 > translate < 2, 1.5, -0.3 > texture{tx_fosca } } sphere{ < 0.8, 1.4, 0.9 >, .5 texture{ tx_fosca }} sphere{ < -0.8, 1.4, 0.9 >, .5 texture{ tx_fosca }} cone{< 0, 0, 0 >, .7, < 0, 0, 2 >, 0 translate< -0.5, .30, 1.5 > texture{ tx_fosca }} cone{< 0, 0, 0 >, .7, < 0, 0, 2 >, 0 translate< 0.5, .30, 1.5 > texture{ tx_fosca }} sphere{ < 0, 0, 0 >, 2.8 translate< 0, 0, -3.5 > texture{ tx_fosca }} object{arm_M (hand_r) rotate y*arm_r translate< 2.3, 0, -2.5 >} object{arm_M (hand_l) rotate y*arm_l translate< -2.3, 0, -2.5 >} object{Leg_B (legMed_r, legFoot_r) rotate y*legBig_r translate< 1, 0, -5.5 >} object{Leg_B (legMed_l, legFoot_l) rotate y*legBig_l translate< -1, 0, -5.5 >} } #end #macro Interpola(f0, v0, f1, v1, f) #local ss=(f-f0)/f1-f0); #local rr=(1-ss); (rr*v0+ss*v1) #end #macro Quadro_anterior(fase) #local t=0; #while(i=fase)) #local resp=i; #end #local i=i+1; #end resp #end #macro Dance(fase) #end object{Animal(-45, -45, 45, 45, -45, 20, 25, 30, -15, 20)} object {eixos(3.00)} #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 0.00 >; #declare raio_cena = 16.0; #declare dir_camera = < 0.00, 20.00, 10.00 >; #declare dist_camera = 300.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)