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

Safe HaskellNone

Geom2D.CubicBezier.Approximate

Synopsis

Documentation

approximatePathSource

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.

approximatePathMaxSource

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.