Team:TU Eindhoven/the game

From 2014.igem.org

Revision as of 15:30, 15 July 2014 by TomNijhof (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
<script type="application/processing">

int cx, cy; float secondsRadius; float minutesRadius; float hoursRadius; float clockDiameter;

void setup() {

 size(640, 360);
 stroke(255);
 
 int radius = min(width, height) / 2;
 secondsRadius = radius * 0.72;
 minutesRadius = radius * 0.60;
 hoursRadius = radius * 0.50;
 clockDiameter = radius * 1.8;
 
 cx = width / 2;
 cy = height / 2;

}

void draw() {

 background(0);
 
 // Draw the clock background
 fill(80);
 noStroke();
 ellipse(cx, cy, clockDiameter, clockDiameter);
 
 // Angles for sin() and cos() start at 3 o'clock;
 // subtract HALF_PI to make them start at the top
 float s = map(second(), 0, 60, 0, TWO_PI) - HALF_PI;
 float m = map(minute() + norm(second(), 0, 60), 0, 60, 0, TWO_PI) - HALF_PI; 
 float h = map(hour() + norm(minute(), 0, 60), 0, 24, 0, TWO_PI * 2) - HALF_PI;
 
 // Draw the hands of the clock
 stroke(255);
 strokeWeight(1);
 line(cx, cy, cx + cos(s) * secondsRadius, cy + sin(s) * secondsRadius);
 strokeWeight(2);
 line(cx, cy, cx + cos(m) * minutesRadius, cy + sin(m) * minutesRadius);
 strokeWeight(4);
 line(cx, cy, cx + cos(h) * hoursRadius, cy + sin(h) * hoursRadius);
 
 // Draw the minute ticks
 strokeWeight(2);
 beginShape(POINTS);
 for (int a = 0; a < 360; a+=6) {
   float angle = radians(a);
   float x = cx + cos(angle) * secondsRadius;
   float y = cy + sin(angle) * secondsRadius;
   vertex(x, y);
 }
 endShape();

} </script><canvas width="640" height="360"></canvas>

Clock.