Skip to main content

split-by-curvature

function splitByCurvature(ps: number[][], maxCurviness?: number, minTSpan?: number): number[]

Defined in transformation/split/split-by-curvature.ts:22

Split the order 0,1,2 or 3 bezier curve into pieces (given as an array of parameter t values) such that each piece is flat within a given tolerance given by the curviness function.

Note!
Green circles are draggable!
0

Parameters:

NameTypeDefault valueDescription
psnumber[][]-an order 0,1,2 or 3 bezier curve given as an ordered array of its control point coordinates, e.g. [[0,0], [1,1], [2,1], [2,0]]
maxCurvinessnumber0.4optional; defaults to 0.4 radians; maximum curviness (must be > 0) as calculated using the curviness function (which measures the total angle in radians formed by the vectors formed by the ordered control points);
minTSpannumber2**-16optional; defaults to 2**-16; the minimum t span that can be returned for a bezier piece; necessary for cubics otherwise a curve with a cusp would cause an infinite loop