Expand description

curveipo - 2D curve interpolation

    use curveipo::{Curve, prelude::*};

    // Float curve.
    let curve = Curve::new([
        // (x, y) curve point
        (1.0_f32, -20.0_f32),
        (2.0, 2.0),
        (10.0, 20.0),
        (20.0, -17.0),
    ]);

    // Linear interpolation in float curve with float result.
    let x = 3.0;
    let y_interpolated = curve.lin_inter(x);
    float_eq::assert_float_eq!(y_interpolated, 4.25, abs <= 0.001);

    // Integer curve.
    let curve = Curve::new([
        // (x, y) curve point
        (1_i16, -20_i16),
        (2, 2),
        (10, 20),
        (20, -17),
    ]);

    // Linear interpolation in integer curve with rounded integer result.
    let x = 3;
    let y_interpolated = curve.lin_inter(x);
    assert_eq!(y_interpolated, 4);

Modules

Structs

2D curve for point interpolation.

Traits

Curve interpolation operations.
2D curve point operations.