//TP02 - Ferramenta de pegar biscoitos //Aluno: Sergio José Venancio Júnior //RA: 009884 // ====================================================================== // CORES E TEXTURAS background{ color rgb < 0.75, 0.80, 0.85 > } #declare tx_plastico_preto = texture{ pigment{ color rgb < 0.3, 0.3, 0.3 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_plastico_amarelo = texture{ pigment{ color rgb < 1, 1, 0 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare tx_reflexivo_branco = texture{ pigment{ color rgb < 1, 1, 1 > } finish{ diffuse 0.2 reflection 0.3*< 1, 1, 1 > ambient 0.1 } } #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 4.0 } // ====================================================================== // DESCRIÇÃO DA CENA #declare chao = box{ <-20,-20,-1>, <+20,+20,0> } //funcao que cria ponta do pegador de biscoitos #macro criaPonta() union{ //cria suporte para a area de contato box { <-1.8,7,0>, <-2.3,11,3> texture{ tx_plastico_amarelo } } //a area de contato com o biscoito eh composta por varias esferas #declare ballCount = 1; #declare linha = 0; #declare coluna = 0; //loop que distribui as esferas ao longo do suporte #while(ballCount <= 12) sphere { < -1.8, coluna + 7.5, linha + 0.5 >, 0.5 texture{ tx_plastico_amarelo } } #declare coluna = coluna + 1; #if (mod(ballCount, 4) = 0) #declare linha = linha + 1; #declare coluna = 0; #end #declare ballCount = ballCount + 1; #end } #end //cria haste do pegador de biscoitos e acopla a ponta #macro criaHaste() union { //cilindro de cruzamento cylinder{ < -2, 2, 1.5 >, < 2, -2, 1.5 >, 0.3 texture{ tx_reflexivo_branco} } //cilindro do cabo cylinder{ < 2, -2, 1.5 >, < 2, -4, 1.5 >, 0.3 texture{ tx_reflexivo_branco} } //cilindro da ponta de pegar biscoito cylinder{ < -2, 2, 1.5 >, < -2, 7.5, 1.5 >, 0.3 texture{ tx_reflexivo_branco} } //cabo cylinder{ < 2, -4, 1.5 >, < 2, -10, 1.5 >, 0.5 texture{ tx_plastico_preto} } //juntas da haste sphere{ < -2,2,1.5 >, 0.3 texture{ tx_reflexivo_branco} } sphere{ < 2,-2,1.5 >, 0.3 texture{ tx_reflexivo_branco} } //acopla ponta de pegar biscoito object{ criaPonta() } } #end //funcao para criar ferramenta completa #macro criaFerramenta(angulo) union { object{ criaHaste() } object{ criaHaste() rotate <0,180,angulo> translate < 0,0,+3 >} } #end #include "eixos.inc" // ================================================================= // MONTAGEM DA CENA union{ object{ eixos(3.00) } object{ chao translate < 0,0,0 > texture{ tx_xadrez } } //ferramenta aberta object{ criaFerramenta(-13) translate < 9,0,0 > } //ferramenta meio-aberta object{ criaFerramenta(0) } //ferramenta fechada object{ criaFerramenta(13) translate < -9,0,0 >} } // ================================================================= // POSICIONAMENTO DA CAMERA #include "camlight.inc" #declare centro_cena = < 0, 0, 0 >; #declare raio_cena = 21.0; #declare dir_camera = < 14.00, 14.00, 14.00 >; #declare dist_camera = 60.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)