//Laura Berry, Part 1 //Render settings: +KFI0, +KFF360, +KI-2, +KF16 //[512x384, AA 0.3] //presets #include "colors.inc" #include "glass.inc" #include "golds.inc" #include "metals.inc" #include "stones.inc" #include "woods.inc" #include "woodmaps.inc" //camera camera { location <0,0,-8> look_at <0,0,0> } //lighting global_settings {ambient_light White} light_source {<0,0,-4> color White} light_source {<4,0,-1> color White} //background background {color White} //define edge thickness #declare ra= .07; #declare rr= .11; //metal shades #declare cc = texture{T_Gold_1A}; #declare ss = texture{T_Silver_1A}; //define point #macro line(g) #declare p1 = <-1,-1,0>; #declare p2 = ; #declare p3 = ; #declare p4 = <-1,-.98,0>; #declare f1 = polygon {5, p1,p2,p3,p4,p1 texture {T_Wood1tt} }; object {f1} #end //define square #macro square(s) #declare p1 = <-1,-1,0>; #declare p2 = <1,-1,0>; #declare p3 = <1,s,0>; #declare p4 = <-1,s,0>; #declare f1 = polygon {5, p1,p2,p3,p4,p1 texture {T_Wood1tt} }; object {f1} #end //front square #macro front(c) #declare p1 = ; #declare p2 = ; #declare p3 = ; #declare p4 = ; #declare f1 = polygon {5, p1,p2,p3,p4,p1 texture {T_Wood1tt}}; object {f1} #end //back square #macro back(c) #declare p1 = ; #declare p2 = ; #declare p3 = ; #declare p4 = ; #declare f1 = polygon {5, p1,p2,p3,p4,p1 texture{T_Wood1tt} }; object {f1} #end //bottom square #macro bottom(c) #declare p1 = ; #declare p2 = ; #declare p3 = ; #declare p4 = ; #declare f1 = polygon {5, p1,p2,p3,p4,p1 texture {T_Wood1tt}}; object {f1} #end //top square #macro top(c) #declare p1 = ; #declare p2 = ; #declare p3 = ; #declare p4 = ; #declare f1 = polygon {5, p1,p2,p3,p4,p1 texture {T_Wood1tt}}; object {f1} #end //define points of inner cube #declare p1a = ; #declare p2a = ; #declare p3a = ; #declare p4a = ; #declare p5a = ; #declare p6a = ; #declare p7a = ; #declare p8a = ; //define points of outer cube #declare p1b = <2*cos(radians(230))-2,2,2*sin(radians(230))>; #declare p2b = <2*cos(radians(230))+2,2,2*sin(radians(230))>; #declare p3b = <2*cos(radians(230))+2,-2,2*sin(radians(230))>; #declare p4b = <2*cos(radians(230))-2,-2,2*sin(radians(230))>; #declare p5b = <2*cos(radians(50))-2,2,2*sin(radians(50))>; #declare p6b = <2*cos(radians(50))+2,2,2*sin(radians(50))>; #declare p7b = <2*cos(radians(50))+2,-2,2*sin(radians(50))>; #declare p8b = <2*cos(radians(50))-2,-2,2*sin(radians(50))>; //set clock #switch(clock) //animation //show point #range (-2,-1) #declare g=-.96; object{line(g)} #break //point to line #range (-1.0001,0) #declare g=-.96+1.96*(clock+1); object{line(g)} #break //show line #range (0.0001,1) #declare s=-.98; object{square(s)} #break //line to square #range(1.0001,2) #declare s=-.98+1.98*(clock-1); object{square(s)} #break //show square #range(2.0001,3) #declare s=1; object{square(s)} #break //rotate square #range(3.0001,4) #declare s=1; #declare r= clock-3; object{square(s) rotate <0,-230*r,0>} #break //separate 2 squares #range(4.0001,5) #declare s=1; #declare r= clock-4; object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } #break //add a back to cube #range(5.0001,6) #declare s=1; #declare r= 1; #declare c= radians(50); object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c) translate <0, 6-clock, 0>} #break //add a bottom #range(6.0001,7) #declare s=1; #declare r= 1; #declare c= radians(50); #declare a= radians(230); object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c) translate <0,.5*(clock-7),0>} #break //add a front #range(7.0001,8) #declare s=1; #declare r= 1; #declare c= radians(50); #declare a= radians(230); object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c)} object{front(c) translate <0, 8-clock, 0>} #break //add a top #range(8.0001,9) #declare s=1; #declare r= 1; #declare c= radians(50); #declare a= radians(230); object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c)} object{front(c)} object{top(c) translate <0,9-clock,0>} #break //display cube #range(9.0001,10) #declare s=1; #declare r= 1; #declare c= radians(50); #declare a= radians(230); union{ object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c)} object{front(c)} object{top(c)} } #break //expand second cube #range(10.0001,11) #declare s=1; #declare r= 1; #declare c= radians(50); #declare a= radians(230); #declare f= clock-10; union{ object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c)} object{front(c)} object{top(c)} } union{ object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c)} object{front(c)} object{top(c)} scale <1+f,1+f,1+f>} #break //display double cube #range(11.0001,12) #declare s=1; #declare r= 1; #declare c= radians(50); #declare a= radians(230); union{ object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c)} object{front(c)} object{top(c)} } union{ object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c)} object{front(c)} object{top(c)} scale <2,2,2>} #break //framed #range(12.0001,13.5) #declare s=1; #declare r= 1; #declare c= radians(50); #declare a= radians(230); union{ object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c)} object{front(c)} object{top(c)} } union{ object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c)} object{front(c)} object{top(c)} scale <2,2,2> } object{union{ sphere { p1a, rr texture{cc}} sphere { p2a, rr texture{cc}} sphere { p3a, rr texture{cc}} sphere { p4a, rr texture{cc}} sphere { p5a, rr texture{cc}} sphere { p6a, rr texture{cc}} sphere { p7a, rr texture{cc}} sphere { p8a, rr texture{cc}} cylinder { p1a,p2a,ra texture{ss}} cylinder { p2a,p3a,ra texture{ss}} cylinder { p3a,p4a,ra texture{ss}} cylinder { p4a,p1a,ra texture{ss}} cylinder { p1a,p5a,ra texture{ss}} cylinder { p4a,p8a,ra texture{ss}} cylinder { p2a,p6a,ra texture{ss}} cylinder { p3a,p7a,ra texture{ss}} cylinder { p5a,p6a,ra texture{ss}} cylinder { p6a,p7a,ra texture{ss}} cylinder { p7a,p8a,ra texture{ss}} cylinder { p8a,p5a,ra texture{ss}} sphere { p1b, rr texture{cc}} sphere { p2b, rr texture{cc}} sphere { p3b, rr texture{cc}} sphere { p4b, rr texture{cc}} sphere { p5b, rr texture{cc}} sphere { p6b, rr texture{cc}} sphere { p7b, rr texture{cc}} sphere { p8b, rr texture{cc}} cylinder { p1b,p2b,ra texture{ss}} cylinder { p2b,p3b,ra texture{ss}} cylinder { p3b,p4b,ra texture{ss}} cylinder { p4b,p1b,ra texture{ss}} cylinder { p1b,p5b,ra texture{ss}} cylinder { p4b,p8b,ra texture{ss}} cylinder { p2b,p6b,ra texture{ss}} cylinder { p3b,p7b,ra texture{ss}} cylinder { p5b,p6b,ra texture{ss}} cylinder { p6b,p7b,ra texture{ss}} cylinder { p7b,p8b,ra texture{ss}} cylinder { p8b,p5b,ra texture{ss}} cylinder { p1a,p1b,ra texture{ss}} cylinder { p2a,p2b,ra texture{ss}} cylinder { p3a,p3b,ra texture{ss}} cylinder { p4a,p4b,ra texture{ss}} cylinder { p5a,p5b,ra texture{ss}} cylinder { p6a,p6b,ra texture{ss}} cylinder { p7a,p7b,ra texture{ss}} cylinder { p8a,p8b,ra texture{ss}} }} #break //completed #range(13.5001,16) #declare s=1; #declare r= 1; #declare c= radians(50); #declare a= radians(230); union{ object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c)} object{front(c)} object{top(c)} } union{ object{square(s) rotate <0,-230,0> translate <-r,0,0>} object{square(s) rotate <0,-230,0> translate } object{back(c)} object{bottom(c)} object{front(c)} object{top(c)} scale <2,2,2> } object{union{ sphere { p1a, rr texture{cc}} sphere { p2a, rr texture{cc}} sphere { p3a, rr texture{cc}} sphere { p4a, rr texture{cc}} sphere { p5a, rr texture{cc}} sphere { p6a, rr texture{cc}} sphere { p7a, rr texture{cc}} sphere { p8a, rr texture{cc}} cylinder { p1a,p2a,ra texture{ss}} cylinder { p2a,p3a,ra texture{ss}} cylinder { p3a,p4a,ra texture{ss}} cylinder { p4a,p1a,ra texture{ss}} cylinder { p1a,p5a,ra texture{ss}} cylinder { p4a,p8a,ra texture{ss}} cylinder { p2a,p6a,ra texture{ss}} cylinder { p3a,p7a,ra texture{ss}} cylinder { p5a,p6a,ra texture{ss}} cylinder { p6a,p7a,ra texture{ss}} cylinder { p7a,p8a,ra texture{ss}} cylinder { p8a,p5a,ra texture{ss}} sphere { p1b, rr texture{cc}} sphere { p2b, rr texture{cc}} sphere { p3b, rr texture{cc}} sphere { p4b, rr texture{cc}} sphere { p5b, rr texture{cc}} sphere { p6b, rr texture{cc}} sphere { p7b, rr texture{cc}} sphere { p8b, rr texture{cc}} cylinder { p1b,p2b,ra texture{ss}} cylinder { p2b,p3b,ra texture{ss}} cylinder { p3b,p4b,ra texture{ss}} cylinder { p4b,p1b,ra texture{ss}} cylinder { p1b,p5b,ra texture{ss}} cylinder { p4b,p8b,ra texture{ss}} cylinder { p2b,p6b,ra texture{ss}} cylinder { p3b,p7b,ra texture{ss}} cylinder { p5b,p6b,ra texture{ss}} cylinder { p6b,p7b,ra texture{ss}} cylinder { p7b,p8b,ra texture{ss}} cylinder { p8b,p5b,ra texture{ss}} cylinder { p1a,p1b,ra texture{ss}} cylinder { p2a,p2b,ra texture{ss}} cylinder { p3a,p3b,ra texture{ss}} cylinder { p4a,p4b,ra texture{ss}} cylinder { p5a,p5b,ra texture{ss}} cylinder { p6a,p6b,ra texture{ss}} cylinder { p7a,p7b,ra texture{ss}} cylinder { p8a,p8b,ra texture{ss}} }} polygon { 5, p1a, p5a, p5b, p1b, p1a texture {T_Wood1tt }} polygon { 5, p5a, p6a, p6b, p5b, p5a texture {T_Wood1tt }} polygon { 5, p6a, p2a, p2b, p6b, p6a texture {T_Wood1tt }} polygon { 5, p2a, p1a, p1b, p2b, p2a texture {T_Wood1tt }} polygon { 5, p3a, p7a, p7b, p3b, p3a texture {T_Wood1tt }} polygon { 5, p7a, p8a, p8b, p7b, p7a texture {T_Wood1tt }} polygon { 5, p8a, p4a, p4b, p8b, p8a texture {T_Wood1tt }} polygon { 5, p4a, p3a, p3b, p4b, p4a texture {T_Wood1tt }} polygon { 5, p4a, p1a, p1b, p4b, p4a texture {T_Wood1tt }} polygon { 5, p5a, p8a, p8b, p5b, p5a texture {T_Wood1tt }} polygon { 5, p6a, p7a, p7b, p6b, p6a texture {T_Wood1tt }} polygon { 5, p2a, p3a, p3b, p2b, p2a texture {T_Wood1tt }} #break #end