| Safe Haskell | None |
|---|
Math.Spline.BezierCurve
- data BezierCurve t
- bezierCurve :: Vector t -> BezierCurve t
- splitBezierCurve :: VectorSpace v => BezierCurve v -> Scalar v -> (BezierCurve v, BezierCurve v)
- evalSpline :: Spline s v => s v -> Scalar v -> v
Documentation
data BezierCurve t Source
A Bezier curve on 0 <= x <= 1.
Instances
| Spline BezierCurve v => ControlPoints BezierCurve v | |
| (VectorSpace v, Fractional (Scalar v), Ord (Scalar v)) => Spline BezierCurve v | |
| Eq t => Eq (BezierCurve t) | |
| Ord t => Ord (BezierCurve t) | |
| Show v => Show (BezierCurve v) |
bezierCurve :: Vector t -> BezierCurve tSource
Construct a Bezier curve from a list of control points. The degree of the curve is one less than the number of control points.
splitBezierCurve :: VectorSpace v => BezierCurve v -> Scalar v -> (BezierCurve v, BezierCurve v)Source
Split and rescale a Bezier curve. Given a BezierCurve b and a point
t, splitBezierCurve b t creates 2 curves (b1, b2) such that (up to
reasonable numerical accuracy expectations):
evalSpline b1 x == evalSpline b (x * t) evalSpline b2 (x-t) == evalSpline b (x * (1-t))
evalSpline :: Spline s v => s v -> Scalar v -> vSource