// ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_xadrez = texture{ pigment{ checker color rgb < 0.10, 0.32, 0.60 >, color rgb < 1.00, 0.97, 0.90 > } finish{ diffuse 0.9 ambient 0.1 } scale 2.0 } #declare tx_gato = texture{ pigment{ color rgb <0.4,0.4,0.4>} } // ====================================================================== // DESCRIÇÃO DA CENA #declare NQ = 6; #declare argA = array[NQ] {0,30,-30,0,0,0} #declare argB = array[NQ] {0,0,0,-30,30,0} #declare argC = array[NQ] {0,0,30,0,0,0} #declare argD = array[NQ] {0,0,0,30,0,0} #declare argP = array[NQ] {0,15,30,30,15,0} #declare argQ = array[NQ] {0,15,30,30,15,0} #declare argR = array[NQ] {0,-15,-30,-30,-15,0} #declare argS = array[NQ] {0,-15,-30,-30,-15,0} #declare argT = array[NQ] {0,0,15,-30,0,0} #declare argU = array[NQ] {0,0,15,-30,0,0} #declare tempo = array[NQ] {0.0,0.20,0.40,0.60,0.80,1.00} #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 i=0; #while (i=fase)) #local resp= i; #end #local i=i+1; #end (resp) #end #macro boneco_dancando(fase) #end // Partes da cena: #declare chao = box{ <-20,-20,-1>, <+20,+20,0> } #declare cabeca = sphere{ <0,0,0>, 1 texture{ tx_gato }} #declare tronco = cone {<0,0,0>, 2, <0,0,4>, 1 texture{ tx_gato }} #declare orelha = cone {<0,0,0>, 0.3, <0,0,0.7>, 0 texture{ tx_gato }} #macro gato(bdir,besq,abdir,abesq) union{ object{cabeca translate <0,0,5>} object{orelha translate <0,+0.6,5.6>} object{orelha translate <0,-0.6,5.6>} object{tronco translate <0,0,0>} object{braco(abdir) rotate translate <0,+1,3.7> } object{braco(abesq) rotate scale<+1,-1,+1> translate <0,-1,3.7>} object{perna() translate <0,+1,-0.1>} object{perna() scale<+1,-1,+1> translate <0,-1,-0.1>} } #end #macro braco(alfa) #local ombro = sphere {<0,0,0>, 0.4 texture{ tx_gato }} #local brac = cylinder {<0,0,0>, <0,0,-1.6>, 0.4 texture{ tx_gato }} union{ object{ ombro } object{ brac translate <0,0,-0.1> } object{ antebraco() rotate translate <0,0,-1.8> } } #end #macro antebraco() #local cotovelo = sphere {<0,0,0>, 0.4 texture{ tx_gato }} #local antebrac = cylinder {<0,0,0>, <0,0,-1.7>, 0.4 texture{ tx_gato }} #local mao = sphere {<0,0,0> 0.5 texture{ tx_gato }} union{ object { cotovelo } object { antebrac translate <0,0,-0.1> } object { mao translate <0,0,-2.0> } } #end #macro perna() #local artic = sphere {<0,0,0>, 0.5 texture{ tx_gato }} #local coxaa = cylinder {<0,0,0>, <0,0,-1.8>, 0.6 texture{ tx_gato }} union{ object{ artic } object{ coxaa translate <0,0,-0.2> } object{ canela() translate <0,0,-2.1> } } #end #macro canela() #local artic = sphere {<0,0,0>, 0.5 texture{ tx_gato }} #local canelaa = cylinder {<0,0,0>, <0,0,-1.5>, 0.5 texture{ tx_gato }} union{ object{ artic } object{ canelaa translate <0,0,-0.2> } object{ pe() translate <0.4,0,-1.7> } } #end #macro pe() #local pee = sphere {<0,0,0>, 0.7 texture{ tx_gato }} object{ pee scale <2,1,0.5>} #end #include "eixos.inc" // Aqui está a cena, finalmente: union{ object{ eixos(3.00) } object{ chao translate < 0,0,-5 > texture{ tx_xadrez } } object{ gato(90,90,0,0) translate <0,4,0>} // object{ gato(90,30,90,15) translate <0,-4,0>} } #include "camlight.inc" #declare centro_cena = < 0.00, 0.00, 1.00 >; #declare raio_cena = 10.0; #declare dir_camera = < 4, 0, 2 >; #declare dist_camera = 10.0; #declare intens_luz = 1; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)