Created
January 10, 2018 20:13
-
-
Save lovasoa/774101d88b52fd44acc8d2b4c8d33add to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
PVector centerOrb, centerPup, speed; | |
// Durée autour du comportement en veille | |
int initial_time = 0; | |
int inactivity = 1000; | |
float rotation_inactivity = 0.003; | |
float last_active_angle = 0; | |
// Caractérisitques de l'oeil | |
int rOrb = 50; | |
int deltaCenter_max = 20; | |
int rPup = 30; | |
void setup () { | |
size (800, 450); | |
background (255); | |
centerOrb = new PVector(width/2, height/2); | |
//vitesse du mouvement de l'oeil | |
speed = new PVector(2,2); | |
} | |
void draw () { | |
background (255); | |
// Mouvement de l'orbite (Redéfinition de sa position) | |
if (centerOrb.x >= width - rOrb || centerOrb.x <= rOrb ) speed.x = -speed.x; | |
if (centerOrb.y >= height - rOrb || centerOrb.y <= rOrb ) speed.y = -speed.y; | |
centerOrb.add(speed); | |
// Construction de l'orbite | |
ellipse(centerOrb.x, centerOrb.y, 2*rOrb, 2*rOrb); | |
// Placement de la pupille | |
if (millis() - initial_time > inactivity) { | |
float angle = last_active_angle + (millis()-initial_time-inactivity)*rotation_inactivity; | |
centerPup = PVector.fromAngle(angle).mult(deltaCenter_max); | |
} else { | |
// Vecteur entre la souris et le centre de la pupille | |
centerPup = new PVector(mouseX - centerOrb.x, mouseY - centerOrb.y).limit(deltaCenter_max); | |
last_active_angle = centerPup.heading(); | |
} | |
// Translation de l'origine sur le centre le l'orbite | |
translate(centerOrb.x, centerOrb.y); | |
ellipse (centerPup.x, centerPup.y, rPup, rPup); | |
} | |
void mouseMoved() { | |
initial_time = millis(); | |
} |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment