MoonTools.Curve/README.md

1.0 KiB

MoonTools.Curve

NuGet Badge Build Status

Efficiently implements quadratic and cubic Bezier curves in 2D and 3D using immutable structs.

Example

    var myCurve = new CubicBezierCurve3D(
        new Vector3(-4, -4, -3),
        new Vector3(-2, 4, 0),
        new Vector3(2, -4, 3),
        new Vector3(4, 4, 0)
    );

    myCurve.Point(0.5f); // => Vector3(0, 0, 0.75f)
    myCurve.Point(3, 2, 4); // => Vector3(0, 0, 0.75f)
    myCurve.Velocity(0.5f); // => Vector3(9, 0, 4.5f)
    myCurve.Velocity(3, 2, 4); // => Vector3(9, 0, 4.5f)

    // curve values can be calculated statically as well
    CubicBezierCurve3D.Point(        
        new Vector3(-4, -4, -3),
        new Vector3(-2, 4, 0),
        new Vector3(2, -4, 3),
        new Vector3(4, 4, 0),
        0.5f
    ); // => Vector3(0, 0, 0.75f)