// ====================================================================== // CORES E TEXTURAS #include "textures.inc" background{ color rgb < 0.75, 0.80, 0.85 > } /* #declare Aluminum = texture{ pigment{ color rgb < .2, .8, .2 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare Chrome_Metal = texture{ pigment{ color rgb < .8, .2, .2 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare DMFDarkOak = texture{ pigment{ color rgb < .2, .2, .8 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } } #declare Cookie = texture{ pigment{ color rgb < .5, .2, .2 > } finish{ diffuse 0.8 ambient 0.1 specular 0.5 roughness 0.005 } }*/ // ====================================================================== // DESCRIÇÃO DA CENA #declare EPS = 0.1; #macro Garrinha(raio, isUp, distEixo) difference { difference { union { //O formato da garra é um setor circular, ou seja, um cilindro externo menos um interno difference{ //Cilindro principal, mais largo próximo ao eixo intersection { cylinder { raio*<0,-1,0>+, raio*<0,-1,0>-, raio+0.5 texture { Aluminum } } union { box { <-0.5,-100,-100>, <0.5,100,100> texture { Aluminum } } cylinder { <-10,0,0>, <10,0,0>, 3 texture { Aluminum } } } } //Remove o circulo interno cylinder { raio*<0,-1,0>+<10,0,0>, raio*<0,-1,0>-<10,0,0>, raio-0.5 texture { Aluminum } } //Remove a parte de baixo do circulo box { <-100,-100,100*isUp>, < 100, 100,-EPS*isUp> texture { Aluminum } } } //Tem também os dois eixos que se prendem ao centro cylinder { , <-distEixo-0.5,0,0>, 2+EPS texture { Aluminum } } } cylinder { <-distEixo-EPS,0,0>, , 2+2*EPS texture { Aluminum } } } //Deixa espaço para o eixo da articulação cylinder { <-10,0,0>, <10,0,0>, 1+EPS texture { Aluminum } } } //Ponta, onde o biscoito fica apoiado cylinder { raio*<0,-2,0> + isUp*<0,0,EPS>, raio*<0,-2,0> + isUp*<0,0,0.5>, 1.5 texture { Aluminum } } #end #macro PegadorDeBiscoitos(ANG) //CABO de madeira cylinder { <0,5,0>, <0,20,0>, 1.5 texture { DMFDarkOak } } //Ponta do cabo, metálica difference{ cylinder { <0,0,0>, <0,5,0>, 1 texture { Chrome_Metal } } //Remove isso aqui pra deixar um espaçozinho para a articulação difference{ cylinder { <-10,0,0>, <10,0,0>, 3+EPS texture { Chrome_Metal } } cylinder { <-0.5,0,0>, <0.5,0,0>, 4+EPS texture { Chrome_Metal } } } } //Eixo cylinder { <-0.5,0,0>, <0.5,0,0>, 2 texture { Chrome_Metal } } cylinder { <-1.5,0,0>, <1.5,0,0>, 1 texture { Chrome_Metal } } //Garrinhas union { Garrinha(5, 1, 1) rotate } union { Garrinha(5, -1, 0.5) rotate <-ANG, 0, 0> } //Por fim, claro, o biscoito! sphere { <0,-10,0> 4 scale <1,1,0.3> texture { Brown_Agate } } #end #declare ANG = 10; #while(ANG <= 90) union { PegadorDeBiscoitos(ANG) translate <(ANG-45)/2, 0, 0> } #declare ANG = ANG + 20; #end #include "camlight.inc" #declare centro_cena = <0,0,0>; #declare raio_cena = 40.0; #declare dir_camera = < -10, -20, 10 >; #declare dist_camera = 50.0; #declare intens_luz = 1.00; camlight(centro_cena, raio_cena, dir_camera, dist_camera , z, intens_luz)