FAQ
 
 
Cover  \ Exhibition  \ Learning  \ Reference  \ Download  \ Discourse   
    Examples \ Tutorials \ Courses & Workshops
 
   
 
 
Examples for Processing (BETA) version 91+. If you have a previous version, use the examples included with your software. If you see any errors or have comments, please let us know.



Arctangent
by REAS <www.groupc.net>

Move the mouse to change the direction of the eyes. The atan2() function computes the angle from each eye to the cursor.

Created 1 September 2002
Updated 6 July 2004

   
// Arctangent 
// by REAS <www.groupc.net> 

 
Eye e1, e2, e3, e4, e5; 
 
void setup() 
{ 
  size(200, 200); 
  smooth(); 
  noStroke(); 
  e1 = new Eye( 50,  16,  80); 
  e2 = new Eye( 64,  85,  40);  
  e3 = new Eye( 90, 200, 120); 
  e4 = new Eye(150,  44,  40); 
  e5 = new Eye(175, 120,  80); 
} 
 
void draw() 
{ 
  background(102); 
  
  e1.update(mouseX, mouseY); 
  e2.update(mouseX, mouseY); 
  e3.update(mouseX, mouseY); 
  e4.update(mouseX, mouseY); 
  e5.update(mouseX, mouseY); 
 
  e1.display(); 
  e2.display(); 
  e3.display(); 
  e4.display(); 
  e5.display(); 
} 
 
class Eye 
{ 
  int ex, ey; 
  int size; 
  float angle = 0.0; 
  
  Eye(int x, int y, int s) { 
    ex = x; 
    ey = y; 
    size = s; 
 } 
 
  void update(int mx, int my) { 
    angle = atan2(my-ey, mx-ex); 
  } 
  
  void display() { 
    pushMatrix(); 
    translate(ex, ey); 
    fill(255); 
    ellipse(0, 0, size, size); 
    rotate(angle); 
    fill(153); 
    ellipse(size/4, 0, size/2, size/2); 
    popMatrix(); 
  } 
} 
 
 







   
  Processing is an open project initiated by Ben Fry and Casey Reas  
  © Info