float Radian_L = 0; float Radian_R = 0; float Distance_L = 0; float Distance_R = 0; float moveXL = 0; float moveYL = 0; float moveXR = 0; float moveYR = 0; void setup() { size(200,200); rectMode(CENTER); rect(100,125,50,50); line(75,150,60,165); line(125,150,140,165); ellipse(60,35,35,35); ellipse(140,35,35,35); ellipse(100,75,80,80); rect(100,90,30,5); line(100,80,100,70); line(98,60,98,65); line(102,60,102,65); } void draw() { Radian_L = atan2(mouseY - 70,mouseX - 85); Radian_R = atan2(mouseY - 70,mouseX - 115); Distance_L = sqrt((mouseX - 85)*(mouseX - 85) + (mouseY - 70)* (mouseY - 70)); Distance_R = sqrt((mouseX - 115)*(mouseX - 115) + (mouseY - 70)* (mouseY - 70)); if (Distance_L > 10){ moveXL = 10 * cos(Radian_L); moveYL = 10 * sin(Radian_L); }else{ moveXL = Distance_L * cos(Radian_L); moveYL = Distance_L * sin(Radian_L); } if (Distance_R > 10){ moveXR = 10 * cos(Radian_R); moveYR = 10 * sin(Radian_R); }else{ moveXR = Distance_R * cos(Radian_R); moveYR = Distance_R * sin(Radian_R); } noStroke(); fill(255); ellipse(85,70,26,26); ellipse(115,70,26,26); stroke(0); /* ellipse(85+(mouseX-100)/20,70+(mouseY-100)/20,5,5); ellipse(115+(mouseX-100)/20,70+(mouseY-100)/20,5,5); */ ellipse(85 + moveXL ,70 + moveYL,4,4); ellipse(115 + moveXR,70 + moveYR,4,4); }