|
let diameter = 15; |
|
let joints = []; |
|
let draggedJoint = null; |
|
|
|
|
|
|
|
|
|
|
|
function setup() { |
|
createCanvas(512, 512); |
|
joints = createJoints(); |
|
} |
|
|
|
function draw() { |
|
background(29); |
|
|
|
|
|
|
|
strokeWeight(3); |
|
stroke(127, 104, 127); |
|
line(joints[0].x, joints[0].y, joints[1].x, joints[1].y); |
|
stroke(0, 94, 255); |
|
line(joints[0].x, joints[0].y, joints[2].x, joints[2].y); |
|
stroke(255, 184, 0); |
|
line(joints[1].x, joints[1].y, joints[2].x, joints[2].y); |
|
stroke(255, 137, 0); |
|
line(joints[0].x, joints[0].y, joints[3].x, joints[3].y); |
|
stroke(255, 57, 38); |
|
line(joints[3].x, joints[3].y, joints[4].x, joints[4].y); |
|
stroke(255, 57, 38); |
|
line(joints[3].x, joints[3].y, joints[4].x, joints[4].y); |
|
stroke(0, 212, 255); |
|
line(joints[4].x, joints[4].y, joints[5].x, joints[5].y); |
|
stroke(0, 245, 240); |
|
line(joints[5].x, joints[5].y, joints[6].x, joints[6].y); |
|
stroke(100, 245, 240); |
|
line(joints[3].x, joints[3].y, joints[7].x, joints[7].y); |
|
stroke(200, 245, 240); |
|
line(joints[7].x, joints[7].y, joints[8].x, joints[8].y); |
|
stroke(0, 255, 178); |
|
line(joints[8].x, joints[8].y, joints[9].x, joints[9].y); |
|
stroke(127, 127, 104); |
|
line(joints[3].x, joints[3].y, joints[10].x, joints[10].y); |
|
stroke(150, 127, 126); |
|
line(joints[10].x, joints[10].y, joints[11].x, joints[11].y); |
|
stroke(197, 0, 254); |
|
line(joints[11].x, joints[11].y, joints[12].x, joints[12].y); |
|
stroke(122, 127, 221); |
|
line(joints[12].x, joints[12].y, joints[13].x, joints[13].y); |
|
stroke(104, 255, 0); |
|
line(joints[13].x, joints[13].y, joints[14].x, joints[14].y); |
|
stroke(198, 255, 0); |
|
line(joints[11].x, joints[11].y, joints[15].x, joints[15].y); |
|
stroke(198, 255, 100); |
|
line(joints[15].x, joints[15].y, joints[16].x, joints[16].y); |
|
stroke(198, 255, 200); |
|
line(joints[15].x, joints[15].y, joints[16].x, joints[16].y); |
|
stroke(198, 255, 255); |
|
line(joints[16].x, joints[16].y, joints[17].x, joints[17].y); |
|
|
|
|
|
|
|
for (let i = 0; i < joints.length; i++) { |
|
let j = joints[i]; |
|
strokeWeight(2); |
|
stroke(0); |
|
fill(255); |
|
ellipse(j.x, j.y, diameter, diameter); |
|
|
|
if (dist(j.x, j.y, mouseX, mouseY) < diameter / 2 && mouseIsPressed) { |
|
fill(50); |
|
j.x = mouseX; |
|
j.y = mouseY; |
|
} |
|
} |
|
|
|
} |
|
|
|
function mouseDragged() { |
|
if (draggedJoint) { |
|
draggedJoint.x = mouseX; |
|
draggedJoint.y = mouseY; |
|
} |
|
} |
|
|
|
function mouseReleased() { |
|
draggedJoint = null; |
|
} |
|
|
|
function createJoints() { |
|
let points = []; |
|
points.push(createVector(97, 114)); |
|
points.push(createVector(76, 84)); |
|
points.push(createVector(116, 86)); |
|
points.push(createVector(108, 220)); |
|
points.push(createVector(127, 282)); |
|
points.push(createVector(117, 373)); |
|
points.push(createVector(125, 438)); |
|
points.push(createVector(146, 299)); |
|
points.push(createVector(133, 392)); |
|
points.push(createVector(147, 453)); |
|
points.push(createVector(136, 139)); |
|
points.push(createVector(425, 158)); |
|
points.push(createVector(382, 288)); |
|
points.push(createVector(392, 384)); |
|
points.push(createVector(392, 444)); |
|
points.push(createVector(408, 271)); |
|
points.push(createVector(416, 369)); |
|
points.push(createVector(417, 428)); |
|
return points; |
|
} |
|
|