Alexander Deplov

Nearest Point

Nearest Point

Code

var bg = new Path.Rectangle({
    size: view.bounds,
    fillColor: 'purple'
})

var path = new Path();
path.strokeColor = 'black';
path.strokeWidth = 3;
var p1 = new Point(100, 100);
var p2 = p1.add([200, -50]);
var p3 = p2.add([0, 50]);
path.moveTo(p1);
path.lineTo(p2);
path.lineTo(p3);
path.smooth()
var circle = new Path.Circle({
    center: view.center,
    radius: 10,
    fillColor: 'red'
});
var tool = new Tool();
tool.onMouseMove = function(event) {
    var p = event.point;
    var np = path.getNearestLocation(p);
    circle.position = np.point;
    if (np.distance < 20) {
        path.strokeColor = 'yellow';
        circle.visible = true;
    } else {
        circle.visible = false;
        path.strokeColor = 'black';
    }
}