ClockArrow ca1, ca2;
void setup() {
size(640, 480);
ca1 = new ClockArrow(width/2 -100, height/2, 150);
ca2 = new ClockArrow(width/2 +100, height/2, 150);
}
void draw() {
background(255);
ca1.show(mouseX, mouseY);
ca2.show(mouseX, mouseY);
line(mouseX, 0, mouseX, height);
line(0, mouseY, width, mouseY);
}
class ClockArrow {
PVector vLoc;
float r;
float tx;
float ty;
ClockArrow(float posX, float posY, float dia) {
r = dia/2;
vLoc = new PVector(posX, posY);
}
void show(float x, float y) {
PVector vTarget = new PVector(x, y);
PVector vDir = PVector.sub(vTarget, vLoc);
vDir.normalize();
vDir.mult(r);
tx = vDir.x;
ty = vDir.y;
circle(vLoc.x, vLoc.y, r*2);
line(vLoc.x, vLoc.y, vLoc.x +tx, vLoc.y +ty);
}
}