Looking for an algorithm to create an interpolated curve function with specific requirements

52 Views Asked by At

I need this algorithm for an editing program to allow users to adjust curves, and I want those curves to conform to some particular requirements. For simplicity of use I would like to be able to define the curve entirely by control points that lie on the curve, which means no additional variables can be used to define tangents.

I want the curve to be smooth everywhere and monotonic between control points, and I also want it to be a function so that every X value maps to a single Y value.

The really tricky part is that the addition of a new control point that lies on the curve should not alter the curve. The curve should only change in shape if the new control point is moved.

Addition of new control points that do not affect the curve shape.

Is there any existing algorithm that satisfies these requirements? I imagine I will need to split the curve up into segments to achieve this.