mirror of
https://github.com/processing/processing4.git
synced 2026-01-30 11:51:54 +01:00
60 lines
1.5 KiB
Java
60 lines
1.5 KiB
Java
import processing.core.*;
|
|
|
|
import java.applet.*;
|
|
import java.awt.*;
|
|
import java.awt.image.*;
|
|
import java.awt.event.*;
|
|
import java.io.*;
|
|
import java.net.*;
|
|
import java.text.*;
|
|
import java.util.*;
|
|
import java.util.zip.*;
|
|
import java.util.regex.*;
|
|
|
|
public class Clock extends PApplet {
|
|
|
|
/**
|
|
* Clock.
|
|
*
|
|
* The current time can be read with the second(), minute(),
|
|
* and hour() functions. In this example, sin() and cos() values
|
|
* are used to set the position of the hands.
|
|
*/
|
|
|
|
public void setup() {
|
|
size(200, 200);
|
|
stroke(255);
|
|
smooth();
|
|
}
|
|
public void draw() {
|
|
background(0);
|
|
fill(80);
|
|
noStroke();
|
|
// Angles for sin() and cos() start at 3 o'clock;
|
|
// subtract HALF_PI to make them start at the top
|
|
ellipse(100, 100, 160, 160);
|
|
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;
|
|
stroke(255);
|
|
strokeWeight(1);
|
|
line(100, 100, cos(s) * 72 + 100, sin(s) * 72 + 100);
|
|
strokeWeight(2);
|
|
line(100, 100, cos(m) * 60 + 100, sin(m) * 60 + 100);
|
|
strokeWeight(4);
|
|
line(100, 100, cos(h) * 50 + 100, sin(h) * 50 + 100);
|
|
|
|
// Draw the minute ticks
|
|
strokeWeight(2);
|
|
for (int a = 0; a < 360; a+=6) {
|
|
float x = 100 + ( cos(radians(a)) * 72 );
|
|
float y = 100 + ( sin(radians(a)) * 72 );
|
|
point(x, y);
|
|
}
|
|
}
|
|
|
|
static public void main(String args[]) {
|
|
PApplet.main(new String[] { "Clock" });
|
|
}
|
|
}
|