Arm.
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); }
Functions Used
strokeWeight()
Sets the width of the stroke used for lines, points, and the border around shapes
Learn More
draw()
Called directly after setup(), the draw() function continuously executes the lines of code contained inside its block until the program is stopped or noLoop() is called
Learn More
background()
The background() function sets the color used for the background of the Processing window
Learn More