# Is it possible to change a piece of curve's interpolation type of a B-Spline via modifying knots?

I am going to implement a curve editor based on (cubic) B-Spline.

Sometime the user may change a piece of curve's interpolation type, that is, use linear/constant value between two consecutive control points rather than using cubic Bezier interpolation.

Is it possible to make it via modifying knots vector(increase or decrease the multiplicity of a knot)?

I come from a Computer Science background, and have a very hard time reading the theoretical background of the spline. Would you suggest some reading on these topics?

Suppose you have two control points $P$ and $Q$. If you use triple knots at both ends of the segment, and you place b-spline control points at $P$, $\tfrac23 P + \tfrac13 Q$, $\tfrac13 P + \tfrac23 Q$, and $Q$, then you'll get a linear segment. But the triple knots will allow corners at $P$ and $Q$ where this linear segment joins the adjacent ones. If you don't want to allow such corners, use double knots, instead. This will cause the linear segment to join the adjacent ones in a $C_1$ fashion (continuous first derivatives). You can get linear segments using single knots, too, and these will then join the adjacent segments in a $C_2$ fashion.