Safe Haskell | None |
---|
- 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
.
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