`path.divideAt(ratio [, opt])`

Divide the path into two paths at the point that lies `ratio`

(normalized length) away from the beginning of the path.

Returns an array with two new paths without modifying the original path. The returned paths are valid; that is, they both start with an appropriate Moveto segment. Additionally, Closepath segments are converted into Lineto segments if necessary. The function expects `ratio`

to lie between 0 and 1; values outside the range are constrained to 0 and 1, respectively. Invisible segments (e.g. Moveto segments) have no length and are therefore skipped by the algorithm. If the path contains no visible segments, `null`

is returned.

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

function. It finds a visible segment which contains the point at length that corresponds to given `ratio`

and then calls the segment's `divideAtLength()`

function.

The `opt`

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

and `opt.segmentSubdivisions`

, which determine maximum error allowed in `divideAtLength`

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.