Files
processing4/java/examples/Basics/Transform/Arm/Arm.pde
Casey Reas 5b0214704c
2011-09-18 06:31:29 +00:00

41 lines
787 B
Plaintext

/**
* Arm.
*
* The angle of each segment is controlled with the mouseX and
* mouseY position. The transformations applied to the first segment
* are also applied to the second segment because they are inside
* the same pushMatrix() and popMatrix() group.
*/
float x, y;
float angle1 = 0.0;
float angle2 = 0.0;
float segLength = 100;
void setup() {
size(640, 360);
strokeWeight(30);
stroke(255, 160);
x = width * 0.3;
y = height * 0.5;
}
void draw() {
background(0);
angle1 = (mouseX/float(width) - 0.5) * -PI;
angle2 = (mouseY/float(height) - 0.5) * PI;
pushMatrix();
segment(x, y, angle1);
segment(segLength, 0, angle2);
popMatrix();
}
void segment(float x, float y, float a) {
translate(x, y);
rotate(a);
line(0, 0, segLength, 0);
}