cubicbezier-0.2.0: Efficient manipulating of 2D cubic bezier curves.

Geom2D.CubicBezier.Approximate

Synopsis

Documentation

Arguments

 :: (Double -> (Point, Point)) The function to approximate and it's derivative -> Double The number of discrete samples taken to approximate each subcurve -> Double The tolerance -> Double The lower parameter of the function -> Double The upper parameter of the function -> [CubicBezier]

Approximate a function with piecewise cubic bezier splines using a least-squares fit, within the given tolerance. Each subcurve is approximated by using a finite number of samples. It is recommended to avoid changes in direction by subdividing the original function at points of inflection.

Arguments

 :: Int The maximum number of subcurves -> (Double -> (Point, Point)) The function to approximate and it's derivative -> Double The number of discrete samples taken to approximate each subcurve -> Double The tolerance -> Double The lower parameter of the function -> Double The upper parameter of the function -> [CubicBezier]

Like approximatePath, but limit the number of subcurves.

approximateCurve :: CubicBezier -> [Point] -> Double -> (CubicBezier, Double, Double)Source

`approximateCurve b pts eps` finds the least squares fit of a bezier curve to the points `pts`. The resulting bezier has the same first and last control point as the curve `b`, and have tangents colinear with `b`. return the curve, the parameter with maximum error, and maximum error. Calculate to withing eps tolerance.

approximateCurveWithParams :: CubicBezier -> [Point] -> [Double] -> Double -> (CubicBezier, Double, Double)Source

Like approximateCurve, but also takes an initial guess of the parameters closest to the points. This might be faster if a good guess can be made.