I want to shift the positions of the knot points in a knot vector and also remove or add new knots without changing the curve. Is it possible to do so?
You can insert all the knots you want without effecting the shape of a curve. However, the same cannot be said about moving knots, in general.
Is it possible to add knots at some desired positions on the curve and remove the undesired knots on the curve?
Sorry, perhaps my initial requirement in the post was missing in my last comment - I want the curve to remain unchanged while doing any knot deletion or insertion operation.
So, here is my better phrased question -
Is it possible to add knots at some desired positions on the curve and remove the undesired knots on the curve without changing its original mathematical description?
It is possible to add knots at any desired locations without changing the shape of the curve. InsertKnot does this.
It is in general not possible to remove a knot without changing the shape of the curve. This is how the math NURBS curves works.
One exception for non-rational curves if the curve is of degree n there Cn continuity across the knot (C3 continuity for a degree 3 NURBS curve) rather than the usual Cn-1 continuity across the knot (C2 continuity across non-multiple knots of degree 3 NURBS curves) Gn continuity is not sufficient. It needs to be Cn continuity.
At knot which has been added can be removed before any control points or weights are altered without changing the shape of the curve.
Thank you very much! This solved my query.