//Graham Barth - Final Project //stereographic Projection //clock value: 0 to 10 #include "colors.inc" #include "glass.inc" #include "golds.inc" #include "metals.inc" #include "stones.inc" #include "woods.inc" camera { sky <0,0,1> direction <-1,0,0> right <-4/3,0,0> location <0,0,100> look_at <0,0,0> angle 15 #if(clock>6) #declare ttt=clock-6; look_at <0,-1,0> location <20,0,1> #end } global_settings { ambient_light White*10 } #declare lite= light_source{ 0*x color rgb <1,1,1>*10 spotlight translate <0,0,1.01> point_at <0,0,0> radius 100 tightness 0 falloff 8} #declare obj= union{ sphere{<0,0,0>, 1 pigment{color rgbf <0,0,1,.95>}} torus{0.545, 0.01 finish {F_MetalE} rotate <90,0,0> translate <0,0,0.85>} torus{0.856, 0.01 finish {F_MetalE} rotate <90,0,0> translate <0,0,0.5>} torus{0.99, 0.01 finish{F_MetalE} rotate <90,0,0>} torus{0.856, 0.01 finish {F_MetalE} rotate <90,0,0> translate <0,0,-0.5>} torus{0.545, 0.01 finish {F_MetalE} rotate <90,0,0> translate <0,0,-0.85>} } #declare obj2= sphere{ <0,0,0>, 1 pigment{color rgbf<0,0,1,.95>}} #declare cyl1= cylinder{ <-3,-1.1,0>, <3,-1.1,0>, 0.1 finish {F_MetalE}} #declare lin1= cylinder{ <0,0,0.98>, <0,-1.93,-1>, 0.01 pigment {color White}} #declare lin2= cylinder{ <0,0,0.98>, <0,-2.5,-1>, 0.01 pigment {color White}} plane {<0,0,-1>, 1 texture {T_Wood3}} #switch(clock) #range(0,1) #declare tt=clock; #declare ss=tt*pi; #object {lite translate <0,-ss,0>} #object {obj rotate <180*tt,0,0> translate <0,-ss,0>} #break #range(1.00001,2) #declare tt=clock-1; #declare ss=tt*pi; #object {lite translate <0,-pi,0> translate <-ss,0,0>} #object {obj rotate <180,0,0> rotate <0,-180*tt,0> translate <0,-pi,0> translate <-ss,0,0>} #break #range(2.00001,3) #declare tt=clock-2; #declare ss=tt*pi; #object {lite translate <0,-pi,0> translate <-pi,0,0> translate <0,.5*ss,0>} #object {obj rotate <180,0,0> rotate <0,-180,0> rotate <-90*tt,0,0> translate <0,-pi,0> translate <-pi,0,0> translate <0,.5*ss,0>} #break #range(3.00001,4) #declare tt=clock-3; #declare ss=tt*pi; #object {lite translate <0,-pi,0> translate <-pi,0,0> translate <0,.5*pi,0>} #object {obj rotate <180,0,0> rotate <0,-180,0> rotate <-90,0,0> rotate <0,0,180*tt> translate <0,-pi,0> translate <-pi,0,0> translate <0,.5*pi,0>} #break #range(4.00001,5) #declare tt=clock-4; #declare ss=tt*pi; #object {lite translate <0,-pi,0> translate <-pi,0,0> translate <0,.5*pi,0> translate <0,.5*ss,0>} #object {obj rotate <180,0,0> rotate <0,-180,0> rotate <-90,0,0> rotate <0,0,180> rotate <0,0,180*tt> translate <0,-pi,0> translate <-pi,0,0> translate <0,.5*pi,0> translate <0,.5*ss,0>} #break #range(5.00001,6) #declare tt=clock-5; #declare ss=tt*pi; #object {lite translate <0,-pi,0> translate <-pi,0,0> translate <0,.5*pi,0> translate <0,.5*pi,0> translate } #object {obj rotate <180,0,0> rotate <0,-180,0> rotate <-90,0,0> rotate <0,0,180> rotate <0,0,180> rotate <0,0,90*tt> rotate <0,90*tt,0> translate <0,-pi,0> translate <-pi,0,0> translate <0,.5*pi,0> translate <0,.5*pi,0> translate } #break #range(6.00001,7) #declare tt=clock-6; #object {obj2 translate <0,0,1> translate <0,0,-tt>} #object {lite translate <0,0,1> translate <0,0,-tt>} #break #range(7.00001,8) #declare tt=clock-7; #object {obj2} #object {lite} #object {cyl1 translate <0,0,2> translate <0,0,-2*tt>} #break #range(8.00001,9) #declare tt=clock-8; #object {obj2} #object {lite} #object {cyl1} #object {lin1 translate <0,-2,0> translate <0,2*tt,0>} #break #range(9.00001,10) #declare tt=clock-9; #object {obj2} #object {lite} #object {cyl1} #object {lin1} #object {lin2 translate <0,0,2> translate <0,0,-2*tt>} #break #end