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!
Parameters:
Name | Type | Default value | Description |
---|---|---|---|
ps | number[][] | - | 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]] |
maxCurviness | number | 0.4 | optional; 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); |
minTSpan | number | 2**-16 | optional; 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 |