smoothie-0.3: Smooth curves via several splines and polynomials.

Copyright(C) 2015 Dimitri Sabadie
LicenseBSD3
MaintainerDimitri Sabadie <dimitri.sabadie@gmail.com>
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell2010

Data.Spline.Key

Contents

Description

 

Synopsis

Key type

data Key a Source

A Key is a point on the spline with extra information added. It can be, for instance, left and right handles for a Bezier curve, or whatever the interpolation might need.

Hold v is used to express no interpolation and holds its latest value until the next key.

Linear v represents a linear interpolation until the next key.

Cosine v represents a cosine interpolation until the next key.

CubicHermite v represents a cubic hermitian interpolation until the next key.

Bezier l v r represents a cubic Bezier interpolation, where l refers to the input – left – normal of the key and r is the output – right – normal of the key.

Constructors

Hold a 
Linear a 
Cosine a 
CubicHermite a 
Bezier a a a 

Instances

Functor Key Source 
Eq a => Eq (Key a) Source 
Show a => Show (Key a) Source 

keyValue :: Key a -> a Source

Extract the value out of a Key.

interpolation

interpolateKeys :: (Additive a, Floating s) => s -> Key (a s) -> Key (a s) -> a s Source

interpolateKeys t start end interpolates between start and end using s as a normalized sampling value.

Satisfies the following laws: interpolateKeys 0 start _ = start interpolateKeys 1 _ end = end