You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
120 lines
2.2 KiB
120 lines
2.2 KiB
```java
|
|
int W = 1280;
|
|
int H = 720;
|
|
String ENGINE = P3D;
|
|
byte AA = 16;
|
|
byte FPS = 120;
|
|
|
|
void settings()
|
|
{
|
|
size(W,H,ENGINE);
|
|
smooth(AA);
|
|
}
|
|
|
|
void setup()
|
|
{
|
|
background(0);
|
|
frameRate(FPS);
|
|
DATE = createGraphics(W,H,ENGINE);
|
|
CLOCK = createGraphics(W,H,ENGINE);
|
|
}
|
|
|
|
void draw()
|
|
{
|
|
DATE();
|
|
TIME();
|
|
}```
|
|
|
|
```java
|
|
int YEAR = year();
|
|
int MONTH = month();
|
|
int DAY = day();
|
|
int MILLIS = millis();
|
|
|
|
PGraphics DATE;
|
|
PGraphics CLOCK;
|
|
|
|
float HOUR = map(hour()%12,0,TWO_PI,0,TWO_PI);
|
|
float MINUTE = map(minute(),0,TWO_PI,0,TWO_PI);
|
|
float SECOND = map(second(),0,60,0,TWO_PI);
|
|
|
|
float center = (W-H);
|
|
|
|
float angle_H = 0;
|
|
float x_H = cos(HOUR-HALF_PI)*center;;
|
|
float y_H = sin(HOUR-HALF_PI)*center;;
|
|
|
|
float angle_M = 0;
|
|
float x_M = cos(MINUTE-HALF_PI)*center;;
|
|
float y_M = sin(MINUTE-HALF_PI)*center;;
|
|
|
|
float angle_S = 0;
|
|
float x_S = cos(SECOND-HALF_PI)*center;
|
|
float y_S = sin(SECOND-HALF_PI)*center;
|
|
|
|
void DATE()
|
|
{
|
|
DATE.beginDraw();
|
|
{
|
|
DATE.background(0);
|
|
DATE.translate(W/2,H/2);
|
|
DATE.scale(1);
|
|
DATE.stroke(255);
|
|
DATE.textSize(MILLIS);
|
|
DATE.text("YEAR: "+YEAR+" MONTH: "+MONTH+" DAY: "+DAY,-W/2,H/2);
|
|
}
|
|
DATE.endDraw();
|
|
image(DATE,0,0);
|
|
}
|
|
|
|
void TIME()
|
|
{
|
|
angle_H = hour();
|
|
float len_H = FPS*2;
|
|
x_H = cos(angle_H)*len_H;
|
|
y_H = sin(angle_H)*len_H;
|
|
if(angle_H >= 360)
|
|
{angle_H = 0;}
|
|
|
|
angle_M = minute();
|
|
float len_M = FPS;
|
|
x_M = cos(angle_M)*len_M;
|
|
y_M = sin(angle_M)*len_M;
|
|
if(angle_M >= 360)
|
|
{angle_M = 0;}
|
|
|
|
angle_S = second();
|
|
float len_S = FPS/2;
|
|
x_S = cos(angle_S)*len_S;
|
|
y_S = sin(angle_S)*len_S;
|
|
if(angle_S >= 360)
|
|
{angle_S = 0;}
|
|
|
|
CLOCK.beginDraw();
|
|
{
|
|
CLOCK.background(255,ALPHA);
|
|
CLOCK.translate(W/2,H/2);
|
|
CLOCK.scale(1);
|
|
CLOCK.strokeWeight(MILLIS);
|
|
CLOCK.stroke(255,0,0);
|
|
CLOCK.noFill();
|
|
CLOCK.circle(0,0,W-H);
|
|
|
|
CLOCK.strokeWeight(HOUR);
|
|
CLOCK.stroke(255);
|
|
CLOCK.text("HOUR: "+HOUR,-W/2,0);
|
|
CLOCK.line(x_H,y_H,0,0);
|
|
|
|
CLOCK.strokeWeight(MINUTE);
|
|
CLOCK.stroke(255,255,0);
|
|
CLOCK.text("MINUTE: "+MINUTE,-W/2,16);
|
|
CLOCK.line(x_M,y_M,0,0);
|
|
|
|
CLOCK.strokeWeight(SECOND);
|
|
CLOCK.stroke(255,0,255);
|
|
CLOCK.text("SECOND: "+SECOND,-W/2,32);
|
|
CLOCK.line(x_S,y_S,0,0);
|
|
}
|
|
CLOCK.endDraw();
|
|
image(CLOCK,0,0);
|
|
}``` |