#version 3.7;

global_settings {
   assumed_gamma 1.0
}

camera {
   location <1, -3, -5>
   look_at 0
}

light_source {
   -30 * z
   colour rgb 1
}

background {
   colour rgb 1
}

#local START_HOUR = 8;
#local START_MIN = 19;
#local START_SECOND = 50;
#local DUR = 15;

#local START = START_HOUR * 3600 + START_MIN * 60 + START_SECOND;
#local NOW = START + DUR * clock;
#local HOUR = int(NOW / 3600);
#local MIN = int(mod(NOW / 60, 60));
#local SECOND = mod(NOW, 60);

/* hour */
intersection {
   cone {
      0,     0.3
      3 * y, 0.2
   }
   plane { -z, 0 }

   translate <0, -0.75, -0.1>
   rotate -(HOUR * 30 + MIN * 0.5) * z
}

/* min */
intersection {
   cone {
      0,       0.25
      4.5 * y, 0.15
   }
   plane { -z, 0 }

   translate <0, -0.75, -0.1>
   rotate MIN * -6 * z
}

/* second */
intersection {
   union {
      cone {
         0, 0.075, 3.5 * y, 0.075
         translate -y
      }
      sphere {
         0, 0.3
         translate 2.5 * y
      }
      sphere { 0, 0.2 }
   #if (SECOND < 58)
      rotate (SECOND * 60 / 58) * -6 * z
   #end
   }
   plane { -z, 0 }
   pigment { rgb <1, 0, 0> }
   translate -0.2 * z
}

intersection {
   plane { -z, 0 }
   difference {
      sphere { 0, 5 }
      sphere { 0, 4.5 }
   }

   pigment { rgb 0.1 }
}

intersection {
   plane { -z, -0.1 }
   sphere { 0, 4.5 }

   pigment { rgb 1 }
}

#for (i, 1, 12)
box {
   <0, -0.15, 0>, <1, 0.15, 1>
   translate -4 * x
   rotate i * 30 * z
   pigment { rgb 0 }
}
#end

#for (i, 1, 60)
box {
   <0, -0.05, 0>, <0.25, 0.05, 1>
   translate -4 * x
   rotate i * 6 * z
   pigment { rgb 0 }
}
#end
Back to index