| Safe Haskell | None |
|---|
Geom2D.CubicBezier.Approximate
- approximatePath :: (Double -> (Point, Point)) -> Double -> Double -> Double -> Double -> [CubicBezier]
- approximatePathMax :: Int -> (Double -> (Point, Point)) -> Double -> Double -> Double -> Double -> [CubicBezier]
- approximateCurve :: CubicBezier -> [Point] -> Double -> (CubicBezier, Double, Double)
- approximateCurveWithParams :: CubicBezier -> [Point] -> [Double] -> Double -> (CubicBezier, Double, Double)
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.