Synchronize README.

This commit is contained in:
Dimitri Sabadie 2019-09-21 14:22:52 +02:00
parent c98b493993
commit 311efa5b26

View File

@ -40,17 +40,13 @@ key. We use the default one because we dont care.
# Interpolate values # Interpolate values
The whole purpose of splines is to interpolate discrete values to yield continuous ones. This is The whole purpose of splines is to interpolate discrete values to yield continuous ones. This is
usually done with the `Spline::sample` method. This method expects the interpolation parameter usually done with the [`Spline::sample`] method. This method expects the sampling parameter
(often, this will be the time of your simulation) as argument and will yield an interpolated (often, this will be the time of your simulation) as argument and will yield an interpolated
value. value.
If you try to sample in out-of-bounds interpolation parameter, youll get no value. If you try to sample in out-of-bounds sampling parameter, youll get no value.
``` ```
# use splines::{Interpolation, Key, Spline};
# let start = Key::new(0., 0., Interpolation::Linear);
# let end = Key::new(1., 10., Interpolation::Linear);
# let spline = Spline::from_vec(vec![start, end]);
assert_eq!(spline.sample(0.), Some(0.)); assert_eq!(spline.sample(0.), Some(0.));
assert_eq!(spline.clamped_sample(1.), Some(10.)); assert_eq!(spline.clamped_sample(1.), Some(10.));
assert_eq!(spline.sample(1.1), None); assert_eq!(spline.sample(1.1), None);
@ -61,14 +57,17 @@ important for simulations / animations. Feel free to use the `Spline::clamped_in
that purpose. that purpose.
``` ```
# use splines::{Interpolation, Key, Spline};
# let start = Key::new(0., 0., Interpolation::Linear);
# let end = Key::new(1., 10., Interpolation::Linear);
# let spline = Spline::from_vec(vec![start, end]);
assert_eq!(spline.clamped_sample(-0.9), Some(0.)); // clamped to the first key assert_eq!(spline.clamped_sample(-0.9), Some(0.)); // clamped to the first key
assert_eq!(spline.clamped_sample(1.1), Some(10.)); // clamped to the last key assert_eq!(spline.clamped_sample(1.1), Some(10.)); // clamped to the last key
``` ```
# Polymorphic sampling types
[`Spline`] curves are parametered both by the carried value (being interpolated) but also the
sampling type. Its very typical to use `f32` or `f64` but really, you can in theory use any
kind of type; that type must, however, implement a contract defined by a set of traits to
implement. See [the documentation of this module](crate::interpolate) for further details.
# Features and customization # Features and customization
This crate was written with features baked in and hidden behind feature-gates. The idea is that This crate was written with features baked in and hidden behind feature-gates. The idea is that