#include "colors.inc" background{ color rgb < 1.00, 1.00, 1.00 > } light_source { < 20.00, 0.00, 20.00 > color rgb < 1.00, 1.00, 1.00 > } camera { location < 30.00, 10.00, 20.00 > right < -1.20, 0.00, 0.00 > up < 0.00, 0.00, 0.90 > sky < 0.00, 0.00, 1.00 > look_at < 0.00, 0.00, 0.00 > } #declare tinta_A = texture { pigment { color rgb < 0.40, 0.40, 0.60 > } finish { diffuse 0.05 specular 0.2 roughness 0.005 ambient 0.05 reflection color rgb < 0.4, 0.4, 0.60 >} } #declare tinta_P = texture { pigment { color rgb < 0.80, 0.75, 0.5> filter 0.5 } finish { diffuse 0.5 specular 0.5 roughness 0.005 ambient 0.1 } } #declare posA = <-5,0,0>; #declare posB = <5,0,0>; # declare pos = (1-clock)*posA + clock*posB; #declare clock0 = clock; #declare clock1 = mod(clock + 0.5,1); #declare eye = sphere { <0,0,0> 0.4 texture { tinta_P } } #declare head = union { sphere { <0,0,0> 2 texture { tinta_A } } object {eye translate <2,0,0>} object {eye translate <2,1,0>} object {eye translate <2,-1,0>} object {eye translate <1.5,0,1>} object {eye translate <1.5,1,1>} object {eye translate <1.5,-1,1>} } #declare bodypart = difference { sphere { <0,0,0> 6 texture { tinta_A} } box { <7,-7,-7>, <-7,7,4> } } #declare body = union { object { bodypart translate <-4,0,0>} object { bodypart } } #declare full_body = union { object {body} object {body rotate x*180 translate <0,0,8>} } union { object {full_body translate < 0,0,-4>} object {head rotate z*180 translate <-8,0,2>} translate <0,0,8> rotate z*180 } plane { z 0 pigment {color rgb <.75,.75,.75>} } #declare sd = seed (432546757); #declare ang1a = 10; #declare ang1b = 50; #declare ang2a = 30; #declare ang2b = 40; #declare ang3a = 20; #declare ang3b = 60; #declare ang4a = 15; #declare ang4b = 75; #declare ang5a = 30; #declare ang5b = 60; #declare ang6a = 0; #declare ang6b = 20 ; #declare z_angle = 45; #declare conj = 1; #while (z_angle >= -45) #declare ang1 = ang1a+(ang1b-ang1a)*rand(sd); #declare ang2 = ang2a+(ang2b-ang2a)*rand(sd); #declare ang3 = ang3a+(ang3b-ang3a)*rand(sd); #declare ang4 = ang4a+(ang4b-ang4a)*rand(sd); #declare ang51 = (ang5a+(ang5b-ang5a)*rand(sd)); #declare ang61 = (ang6a+(ang6b-ang6a)*rand(sd)); #declare ang52 = (ang5a+(ang5b-ang5a)*rand(sd)); #declare ang62 = (ang6a+(ang6b-ang6a)*rand(sd)); #if (clock <= 0.2) #declare ang_de_movimento1 = 50*clock0; #declare ang_de_movimento2 = 10 - 50*clock1; #declare ang51 = ang51 - 50*clock0; #declare ang61 = ang51 + 50*clock0; #else #if (clock <= 0.4) #declare ang_de_movimento1 = 10 - 50*(clock0-0.2); #declare ang_de_movimento2 = 50*(clock1-0.2); #declare ang52 = ang52 - 50*(clock1-0.2); #declare ang62 = ang52 + 50*(clock1-0.2); #else #if (clock <= 0.6) #declare ang_de_movimento1 = 50*(clock0-0.4); #declare ang_de_movimento2 = 10 - 50*clock1-0.4; #declare ang51 = ang51 - 50*clock0-0.4; #declare ang61 = ang51 + 50*clock0-0.4; #else #if (clock <= 0.8) #declare ang_de_movimento1 = 10 - 50*(clock0-0.6); #declare ang_de_movimento2 = 50*clock1-0.06; #declare ang52 = ang52 - 50*clock1-0.6; #declare ang62 = ang62 + 50*clock1-0.6; #else #declare ang_de_movimento1 = 50*(clock0-0.8); #declare ang_de_movimento2 = 10 - 50*clock1-0.08; #end #end #end #end #declare peh = union { sphere { <0,0,0> 0.5 texture { tinta_A}} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_P} rotate ang1*x} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_P} rotate x*60 rotate ang2*x} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_P} rotate x*30 rotate ang3*x} rotate z*90 } #declare anteperna = union { sphere { <0,4,0> 0.4 texture {tinta_P} } cylinder { <0,0,0> , <0,4,0> .3 texture {tinta_A}} object {peh translate <0,4,0>} rotate x*ang4 } #if (conj != 1) #declare anteperna2 = union { sphere { <0,2,0> 0.4 texture {tinta_P} } cylinder { <0,0,0> , <0,2,0> .3 texture {tinta_A}} object {anteperna translate <0,2,0>} rotate x*ang52 } #declare perna = union { sphere { <0,4,0> 0.4 texture {tinta_P} } cylinder { <0,0,0> , <0,4,0> .3 texture {tinta_A}} object {anteperna2 translate <0,4,0>} rotate x*ang62 } #else #declare anteperna2 = union { sphere { <0,2,0> 0.4 texture {tinta_P} } cylinder { <0,0,0> , <0,2,0> .3 texture {tinta_A}} object {anteperna translate <0,2,0>} rotate x*ang51 } #declare perna = union { sphere { <0,4,0> 0.4 texture {tinta_P} } cylinder { <0,0,0> , <0,4,0> .3 texture {tinta_A}} object {anteperna2 translate <0,4,0>} rotate x*ang61 } #end #if (conj != 1) object {perna rotate y*180 translate <0,4,8> rotate z*z_angle rotate z*180 rotate z*ang_de_movimento2 } #declare conj = 1; #else object {perna rotate y*180 translate <0,4,8> rotate z*z_angle rotate z*180 rotate z*ang_de_movimento1 } #declare conj = 2; #end #declare z_angle = z_angle - 15; #end #declare z_angle = 45; #declare conj = 1; #while (z_angle >= -45) #declare ang1 = ang1a+(ang1b-ang1a)*rand(sd); #declare ang2 = ang2a+(ang2b-ang2a)*rand(sd); #declare ang3 = ang3a+(ang3b-ang3a)*rand(sd); #declare ang4 = ang4a+(ang4b-ang4a)*rand(sd); #declare ang51 = ang5a+(ang5b-ang5a)*rand(sd); #declare ang61 = ang6a+(ang6b-ang6a)*rand(sd); #declare ang52 = (ang5a+(ang5b-ang5a)*rand(sd)); #declare ang62 = (ang6a+(ang6b-ang6a)*rand(sd)); #if (clock <= 0.2) #declare ang_de_movimento1 = 50*clock0; //#declare ang_de_movimento2 = 10 - 50*clock1; #declare ang51 = ang51 - 50*clock0; #declare ang61 = ang51 + 50*clock0; #else #if (clock <= 0.4) #declare ang_de_movimento1 = 10 - 50*(clock0-0.2); //#declare ang_de_movimento2 = 50*(clock1-0.2); #declare ang52 = ang52 - 50*(clock1-0.2); #declare ang62 = ang52 + 50*(clock1-0.2); #else #if (clock <= 0.6) #declare ang_de_movimento1 = 50*(clock0-0.4); //#declare ang_de_movimento2 = 10 - 50*clock1-0.4; #declare ang51 = ang51 - 50*clock0-0.4; #declare ang61 = ang51 + 50*clock0-0.4; #else #if (clock <= 0.8) #declare ang_de_movimento1 = 10 - 50*(clock0-0.6); //#declare ang_de_movimento2 = 50*clock1-0.06; #declare ang52 = ang52 - 50*clock1-0.6; #declare ang62 = ang62 + 50*clock1-0.6; #else #declare ang_de_movimento1 = 50*(clock0-0.8); //#declare ang_de_movimento2 = 10 - 50*clock1-0.8; #end #end #end #end #declare peh = union { sphere { <0,0,0> 0.5 texture { tinta_A}} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_P} rotate ang1*x} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_P} rotate x*60 rotate ang2*x} cylinder { <0,0,0> <0,0,2> .2 texture {tinta_P} rotate x*30 rotate ang3*x} rotate z*90 } #declare anteperna = union { sphere { <0,4,0> 0.4 texture {tinta_P} } cylinder { <0,0,0> , <0,4,0> .3 texture {tinta_A}} object {peh translate <0,4,0>} rotate x*ang4 } #if (conj != 1) #declare anteperna2 = union { sphere { <0,2,0> 0.4 texture {tinta_P} } cylinder { <0,0,0> , <0,2,0> .3 texture {tinta_A}} object {anteperna translate <0,2,0>} rotate x*ang52 } #declare perna = union { sphere { <0,4,0> 0.4 texture {tinta_P} } cylinder { <0,0,0> , <0,4,0> .3 texture {tinta_A}} object {anteperna2 translate <0,4,0>} rotate x*ang62 } #else #declare anteperna2 = union { sphere { <0,2,0> 0.4 texture {tinta_P} } cylinder { <0,0,0> , <0,2,0> .3 texture {tinta_A}} object {anteperna translate <0,2,0>} rotate x*ang51 } #declare perna = union { sphere { <0,4,0> 0.4 texture {tinta_P} } cylinder { <0,0,0> , <0,4,0> .3 texture {tinta_A}} object {anteperna2 translate <0,4,0>} rotate x*ang61 } #end #if (conj != 1) object {perna rotate 180*z rotate y*180 translate <0,-4,8> rotate z*z_angle rotate z*180 rotate z*ang_de_movimento2 } //esse angulo é que diz para onde vai a perna} #declare conj = 1; #else object {perna rotate 180*z rotate y*180 translate <0,-4,8> rotate z*z_angle rotate z*180 rotate z*ang_de_movimento1 } //esse angulo é que diz para onde vai a perna} #declare conj = 2; #end #declare z_angle = z_angle - 15; #end