// Last edited on 2003-12-07 20:21:55 by stolfi #include "colors.inc" #include "math.inc" #declare ctr = 3*<1,1,2>; #declare camDir = (0.85*<10,13,20>) - (3*<1,1,2>); camera { location ctr + 1.50*camDir right -1.00*x up 0.75*y sky y look_at ctr } light_source { -20*<1,1,1> color White fade_power 0.4 } light_source { 20*<1,1,1> color White fade_power 0.4 } light_source { -20*<1,1,1> color White fade_power 0.4 } light_source { 20*<1,1,1> color White } background{ color rgb < 1, 0.80, 0.85 > } #declare PIG1 = pigment{ color rgb <0.9,0.4,0.5> } #declare PIG2 = pigment{ color rgb <0.3,0.4,0.9> } #declare PIG3 = pigment{ color rgb <0.7,0.9,0.5> } #declare PIG4 = pigment{ color rgb <0.1,1.0,0.1> } #declare PIG5 = pigment{ color rgb <0.6,0.7,0.1> } #declare PIG6 = pigment{ color rgb <0.6,0.7,0.1> } #declare PIG7 = pigment{ color rgb <0.6,0.7,0.1> } #declare PIG8 = pigment{ color rgb <0.9,0.1,0.1> } #declare PIG9 = pigment{ color rgb <0.3,0.1,0.9> } #declare SEED1 = seed(322); #declare SEED2 = seed(41678); #declare SEED3 = seed(45678); #declare SEED4 = seed(92892); #declare SEED5 = seed(83); #declare SEED6 = seed(980); #declare SEED7 = seed(992); #declare SEED8 = seed(418); #declare TAM_ART1 = 1; #declare RAIO_ART1 = 0.1; #declare TAM_ART2 = 3; #declare RAIO_ART2 = 0.17; #declare TAM_ART3 = 4; #declare RAIO_ART3 = 0.22; #declare TAM_ART4 = 5; #declare RAIO_ART4 = 0.33; #declare DIST_PERNA = 4; #declare INC_PERNA = 2; #declare NUM_PERNAS = 8; #declare RAIO_TORAX = 1; #declare TAM_TORAX = 12; #declare RAIO_ABDOMEN = 3; #declare RAIO_CABECA = 1.8; #declare RAIO_OLHO = 0.4; #declare TAM_ANTENA = 1.5; #declare RAIO_ANTENA = 0.1; #declare ANGULO_GIRO_Y = 30; #declare ANGULO_GIRO_Z = 20; union{ #declare p = 0; #while (p < NUM_PERNAS) #declare art1 = cylinder{ <0,0,0>, , RAIO_ART1 pigment { PIG1} rotate (-ANGULO_GIRO_Y + 2*ANGULO_GIRO_Y*rand(SEED1))*y rotate (-ANGULO_GIRO_Z + 2*ANGULO_GIRO_Z*rand(SEED2))*z } #declare art2 = union{ cylinder{ <0,0,0>, , RAIO_ART2 pigment { PIG2} } object {art1 translate } rotate (-ANGULO_GIRO_Y + 2*ANGULO_GIRO_Y*rand(SEED3))*y rotate (-ANGULO_GIRO_Z + 2*ANGULO_GIRO_Z*rand(SEED4))*z } #declare art3 = union{ cylinder{ <0,0,0>, , RAIO_ART3 pigment { PIG3} } object {art2 translate } rotate (-ANGULO_GIRO_Y + 2*ANGULO_GIRO_Y*rand(SEED5))*y rotate (-ANGULO_GIRO_Z + 2*ANGULO_GIRO_Z*rand(SEED6))*z } #declare art4 = union{ cylinder{ <0,0,0>, , RAIO_ART4 pigment { PIG4} } object {art3 translate } rotate (-ANGULO_GIRO_Y + 2*ANGULO_GIRO_Y*rand(SEED7))*y rotate (-ANGULO_GIRO_Z + 2*ANGULO_GIRO_Z*rand(SEED8))*z translate #if (2*p < NUM_PERNAS) rotate 180*z #end } object {art4} #declare p = p + 1; #end // TORAX cylinder{ <0,0,-TAM_TORAX/2>,<0,0,TAM_TORAX/2>,RAIO_TORAX pigment { PIG5} } // ABDOMEN sphere{ <0,0,-TAM_TORAX/2>, RAIO_ABDOMEN pigment { PIG6} } #declare olho = sphere{ , RAIO_OLHO pigment { PIG8} } // CABECA sphere{ <0,0,TAM_TORAX/2>, RAIO_CABECA pigment { PIG7} } // OLHOS object {olho} object {olho rotate 94*z} #declare antena = cylinder{ <0,0,0>, <0,TAM_ANTENA,0>, RAIO_ANTENA pigment { PIG9} rotate 20*x rotate -10*z translate } // ANTENAS object {antena} object {antena translate <-RAIO_CABECA/2, 0, 0> rotate 20*z} }