mirror of
https://github.com/processing/processing4.git
synced 2026-02-07 23:59:21 +01:00
58 lines
918 B
Plaintext
58 lines
918 B
Plaintext
/**
|
|
* Arctangent.
|
|
*
|
|
* Move the mouse to change the direction of the eyes.
|
|
* The atan2() function computes the angle from each eye
|
|
* to the cursor.
|
|
*/
|
|
|
|
Eye e1, e2, e3;
|
|
|
|
void setup() {
|
|
size(640, 360);
|
|
noStroke();
|
|
e1 = new Eye( 250, 16, 120);
|
|
e2 = new Eye( 164, 185, 80);
|
|
e3 = new Eye( 420, 230, 220);
|
|
}
|
|
|
|
void draw() {
|
|
background(102);
|
|
|
|
e1.update(mouseX, mouseY);
|
|
e2.update(mouseX, mouseY);
|
|
e3.update(mouseX, mouseY);
|
|
|
|
e1.display();
|
|
e2.display();
|
|
e3.display();
|
|
}
|
|
|
|
class Eye {
|
|
int x, y;
|
|
int size;
|
|
float angle = 0.0;
|
|
|
|
Eye(int tx, int ty, int ts) {
|
|
x = tx;
|
|
y = ty;
|
|
size = ts;
|
|
}
|
|
|
|
void update(int mx, int my) {
|
|
angle = atan2(my-y, mx-x);
|
|
}
|
|
|
|
void display() {
|
|
pushMatrix();
|
|
translate(x, y);
|
|
fill(255);
|
|
ellipse(0, 0, size, size);
|
|
rotate(angle);
|
|
fill(153, 204, 0);
|
|
ellipse(size/4, 0, size/2, size/2);
|
|
popMatrix();
|
|
}
|
|
}
|
|
|