Initial Commit
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
/**
|
||||
* Reach 1
|
||||
* based on code from Keith Peters.
|
||||
*
|
||||
* The arm follows the position of the mouse by
|
||||
* calculating the angles with atan2().
|
||||
*/
|
||||
|
||||
|
||||
float segLength = 80;
|
||||
float x, y, x2, y2;
|
||||
|
||||
void setup() {
|
||||
size(640, 360);
|
||||
strokeWeight(20.0);
|
||||
stroke(255, 100);
|
||||
|
||||
x = width/2;
|
||||
y = height/2;
|
||||
x2 = x;
|
||||
y2 = y;
|
||||
}
|
||||
|
||||
void draw() {
|
||||
background(0);
|
||||
|
||||
float dx = mouseX - x;
|
||||
float dy = mouseY - y;
|
||||
float angle1 = atan2(dy, dx);
|
||||
|
||||
float tx = mouseX - cos(angle1) * segLength;
|
||||
float ty = mouseY - sin(angle1) * segLength;
|
||||
dx = tx - x2;
|
||||
dy = ty - y2;
|
||||
float angle2 = atan2(dy, dx);
|
||||
x = x2 + cos(angle2) * segLength;
|
||||
y = y2 + sin(angle2) * segLength;
|
||||
|
||||
segment(x, y, angle1);
|
||||
segment(x2, y2, angle2);
|
||||
}
|
||||
|
||||
void segment(float x, float y, float a) {
|
||||
pushMatrix();
|
||||
translate(x, y);
|
||||
rotate(a);
|
||||
line(0, 0, segLength, 0);
|
||||
popMatrix();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user