#version 3.5; global_settings { assumed_gamma 1.0 } #include "colors.inc" #include "transforms.inc" camera { angle 45 location <0.0 , 15.0 ,-90.0> look_at <0.0 , 24.0 , 0.0> rotate y*50 } // SŁOŃCE light_source{<1500,2500,-2500> color White} sky_sphere{ pigment{ gradient <0,1,0> color_map{ [0 color rgb<1,1,1> ] [0.4 color rgb<0.14,0.14,0.56>] [0.6 color rgb<0.14,0.14,0.56>] [1.0 color rgb<1,1,1> ] } scale 2 } } plane { <0,1,0>, 0 texture { pigment{color White} } } //-------------------------------------------------------------------------- //---------------------------- OBIEKTY W SCENIE ---------------------------- //-------------------------------------------------------------------------- #macro mc_szkielet(_tObr) #local __stopa_lewa=union { sphere{ <0,0,0>,1 } box { <-1,0,-1>,<1,-2,1> } box { <-1,-1,-4>,<1,-2,1> } rotate _tObr[6] } #local __lydka_lewa=union { sphere{ <0,0,0>,1 } cylinder { <0,0,0>,<0,-11,0>, .6 } object { __stopa_lewa translate <0,-11,0> } rotate _tObr[5] } #local __udo_lewe=union { sphere{ <0,0,0>,1 } cylinder { <0,0,0>,<0,-12,0>, .7 } object { __lydka_lewa translate <0,-12,0> } rotate _tObr[4] } #local __stopa_prawa=union { sphere{ <0,0,0>,1 } box { <-1,0,-1>,<1,-2,1> } box { <-1,-1,-4>,<1,-2,1> } rotate _tObr[3] } #local __lydka_prawa=union { sphere{ <0,0,0>,1 } cylinder { <0,0,0>,<0,-11,0>, .6 } object { __stopa_prawa translate <0,-11,0> } rotate _tObr[2] } #local __udo_prawe=union { sphere{ <0,0,0>,1 } cylinder { <0,0,0>,<0,-12,0>, .7 } object { __lydka_prawa translate <0,-12,0> } rotate _tObr[1] } #local __glowa=sphere { <0,0,0>,2 scale <1,2,1> translate <0,4,0> rotate _tObr[17] } #local __szyja=union { cylinder { <0,0,0>,<0,3,0>, .5 } object { __glowa translate <0,3,0> } rotate _tObr[16] } #local __palce_lewe=union { box { <0,-.25,-.4>,<1.5,.25,.4> } rotate _tObr[15] } #local __dlon_lewa=union { box { <0,-.25,-.5>,<1.5,.25,.5> } object { __palce_lewe translate <1.5,0,0> } rotate _tObr[14] } #local __przedramie_lewe=union { sphere { <0,0,0>, 1 } cylinder { <0,0,0>,<6,0,0>,.6} object { __dlon_lewa translate <6,0,0> } rotate _tObr[13] } #local __ramie_lewe=union { sphere { <0,0,0>, 1 } cylinder { <0,0,0>,<9,0,0>,.7} object { __przedramie_lewe translate <9,0,0> } rotate _tObr[12] } #local __palce_prawe=union { box { <0,-.25,-.4>,<-1.5,.25,.4> } rotate _tObr[11] } #local __dlon_prawa=union { box { <0,-.25,-.5>,<-1.5,.25,.5> } object { __palce_prawe translate <-1.5,0,0> } rotate _tObr[10] } #local __przedramie_prawe=union { sphere { <0,0,0>, 1 } cylinder { <0,0,0>,<-6,0,0>,.6} object { __dlon_prawa translate <-6,0,0> } rotate _tObr[9] } #local __ramie_prawe=union { sphere { <0,0,0>, 1 } cylinder { <0,0,0>,<-9,0,0>,.7} object { __przedramie_prawe translate <-9,0,0> } rotate _tObr[8] } #local __tlow=union{ difference{ box { <-4,0,-.5>,<4,13,.5> } box { <-5,-1,-.8>,<-3,4,.8> } box { <5,-1,-.8>,<3,4,.8> } } object { __ramie_prawe translate <-4,12,0> } object { __ramie_lewe translate <4,12,0> } object { __szyja translate <0,13,0> } rotate _tObr[7] } #local __miednica=union{ box { <-4,-1.5,-.5>,<4,1.5,.5> } object { __udo_prawe translate <-3,-1.5,0> } object { __udo_lewe translate <3,-1.5,0> } object { __tlow translate <0,1.5,0> } rotate _tObr[0] } object { __miednica translate <0,26.5,0> } #end #declare tabObr=array[17]; #declare tabObr[0]=<0,0,0>; #declare tabObr[1]=<-(75 - 150*clock),0,0>; #if(clock<.5) #declare tabObr[2]=<-150*clock,0,0>; #else #declare tabObr[2]=<-(150-150*clock),0,0>; #end #declare tabObr=array[18]; #declare tabObr[0]=<0,0,0>; // Miednica #declare tabObr[1]=<45,0,0>; // Udo prawe #declare tabObr[2]=<-90,0,0>; // Łydka prawa #declare tabObr[3]=<45,0,0>; // stopa prawa #declare tabObr[4]=<45,0,0>; // udo lewe #declare tabObr[5]=<-90,0,0>; // Łydka lewa #declare tabObr[6]=<45,0,0>; // Stopa lewa #declare tabObr[7]=<0,0,0>; // Tłów #declare tabObr[8]=<0,0,0>; // Prawe ramie #declare tabObr[9]=<0,0,0>; // Prawe Przedramie #declare tabObr[10]=<0,0,0>; // Prawa dłoń #declare tabObr[11]=<0,0,0>; // Prawe palce #declare tabObr[12]=<0,0,0>; // Lewe ramie #declare tabObr[13]=<0,0,0>; // Lewe Przedramie #declare tabObr[14]=<0,0,0>; // lewa dłoń #declare tabObr[15]=<0,0,0>; // Lewe palce #declare tabObr[16]=<0,0,0>; // Szyjas #declare tabObr[17]=<0,0,0>; // Głowa #macro obliczY(tO) #local _trStopaPrawa=transform { translate <0,-2,0> // punkt od dołu stopy do poczatku stopy tam gdzie jest to sphere rotate tO[3] // kąt obrotu stopy translate <0,-11,0> // przesunięcie lydki rotate tO[2] // kąt obroty łydki translate <0,-12,0> // przesuniecie uda rotate tO[1] // obrot uda translate <0,-1.5,0> // przesuniecie biodra rotate tO[0] // obrot całego biodra translate <0,26.5,0> } -vtransform(<0,0,0>, _trStopaPrawa).y #end object { mc_szkielet(tabObr) pigment { color Red } translate y*obliczY(tabObr) } cylinder { <0,0,0>,<0,100,0>,.1 pigment { color Green } }