B-splines

1. Plot a B-spline beses and curves (Subscript[c, i]) of degree 3 with control points : {{0,0},{1,0},{2,-1},{3,1},{4,2.5},{5,3},{6,5},{5,6},{3,6},{0,5}} and the following knot vectors 
a) (Subscript[c, 1]): knot vector: {0,0,0,0,1,2,3,4,5,6,7,7,7,7} (uniform)
b) (Subscript[c, 2]): knot vector: {0,0,0,0,4/3,2,3,13/3,5,6,7,7,7,7} (non-uniform)
c) (Subscript[c, 3]): knot vector: {0,0,0,0,1,1,2,3,4,5,6,6,6,6}
c) (Subscript[c, 4]): knot vector: {0,0,0,0,1,1,1,2,3,4,5,5,5,5}
d) (Subscript[c, 5]): knot vector: {0,0,0,0,1,1,1,1,2,3,4,4,4,4}
Plot the curves together and observe the differences.

pts= {{0,0},{1,0},{2,-1},{3,1},{4,2.5},{5,3},{6,5},{5,6},{3,6},{0,5}};
 knots1={0,0,0,0,1,2,3,4,5,6,7,7,7,7} ;
knots2={0,0,0,0,4/3,2,3,13/3,5,6,7,7,7,7};
knots3={0,0,0,0,1,1,2,3,4,5,6,6,6,6};
knots4={0,0,0,0,1,1,1,2,3,4,5,5,5,5};
knots5={0,0,0,0,1,1,1,1,2,3,4,4,4,4};

2. Find B-spline curves (Subscript[c, i]) of degree 3 such that
a) (Subscript[c, 6]) is closed
b) (Subscript[c, 7]) has the same control points as (Subscript[c, 1]), but is not “clamped”

3. Change a point in a set of control points and observe the change in a B-spline curve. Use for example the curve (Subscript[c, 4]).

4. Translate the curve (Subscript[c, 4]) by {-3,-1} and rotate is by ((7π)/23) around the point {5,3}.

5. Write a function that inserts a knot into the knot vector such that the resulting curve has the same image as the input curve (knot insertion algorithm). Try it on one of the previous curves or a curve c of degree 3 with the following control points {{0,0},{1,1},{1,2},{0,3},{-2,3},{-3,2},{-4,0},{-4,-2},{-3,-3},{0,-3}}, and a knot vector: {0,0,0,0,1,2,4,7,8,9,10,10,10,10} and insert a knot t = 3.
Sub-exercises: 
a) Find a point on a curve and a tangent at this point (using knot insertion algorithm),
b) divide a curve to two curves at a given point and plot the curves and their control polygons.