`path.closestPoint(point [, opt])`

Return the point on the path that lies closest to `point`

.

Invisible segments (e.g. Moveto segments) have no length and are therefore skipped by the algorithm. If the path contains no visible segments, the `end`

point of the last segment is returned. If the path has no segments at all, `null`

is returned.

The function uses the same algorithm as the `path.closestPointLength()`

function. It finds a visible segment whose identified closest point lies at the lowest distance from `point`

.

The `opt`

argument is optional. Two properties may be specified, `opt.precision`

and `opt.segmentSubdivisions`

, which determine maximum error allowed in segment `closestPoint`

calculations for curved segments (default precision is 3; this corresponds to maximum observed error of 0.1%). The `opt.segmentSubdivisions`

property is an array of individual segments' subdivision arrays. The `path.getSegmentSubdivisions()`

function may be used to obtain the `segmentSubdivisions`

array. The `opt.precision`

property is still necessary, however; it determines the precision of the point search algorithm in curved segments.