//Laura Berry, Part 2, rotation of completed hypercube //+KFI0, +KFF225, +KI-.25, +KF14 //[512x384, AA 0.3] //I deleted the last frame, image 225, because it was very wrong; seemed like the camera was incredibly close //presets #include "colors.inc" #include "glass.inc" #include "golds.inc" #include "metals.inc" #include "stones.inc" #include "woods.inc" #include "woodmaps.inc" //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 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 //fix variables to define hypercube #declare s=1; #declare r= 1; #declare c= radians(50); #declare a= radians(230); //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))>; //inner cube 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)} } //outer cube 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> } //framework (points and edges) 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}} }} //interior squares 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 }} //set clock #switch(clock) #range (-.25,0) //camera camera { location <0,0,-8> look_at <0,0,0> } #break #range(0.001,6) //camera camera { location look_at <0,0,0> } #break #range(6.001,14) //camera camera { location <6,0,-sqrt(64-36)> look_at <0,0,0> } #break #end