-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathArm.pde
More file actions
41 lines (33 loc) · 815 Bytes
/
Arm.pde
File metadata and controls
41 lines (33 loc) · 815 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
/**
* 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);
}