This sounds like you want to get a b-spline representation of position from a b-spline representation of velocity. I would suggest that reversing the process used to generate the derivative seems to be an obvious route. A good explanation of the derivative is on the MTU website (link attached).
Here is how I would go it (errors and omissions are my own).
As with any integration there is an unknown constant, the easiest staring point is probably the origin if you don't have anything specific. This becomes the extra control point you need for the integrated curve. You also need to add back two extra knots into the basis, one at each end, in order to cope with the uplift in the degree of the curve. Finally you generate a set of control points for the original curve from the control points of the derivative.
Using the MTU notation (with some slight adjustment). Start with a set of control points for the derivative / hodograph ( Q0 .. Qn-1) and a knot list (u'1 .. u'm-1 ) (the knot list may be implicit in the process which generated the curve) where u'1 to u'p are repeated at one end and u'm-p to u'm-1 are repeated at the other and p-1 is the order of the derivative curve.
1. Generate a new knot vector (u0 .. um) by duplicating the knots at each end
i.e. setting u0 = u'1; ui = u'i; um = u'm-1
2. Next define P0 as a convenient point (such as the origin) then generate subsequent points Pi = Pi-1 + Qi-1 * (ui+p+1 - ui+1 ) / p
Thanks for your kind response. I have already went through the website and implemented the algorithm mentioned there. This algorithm gives you a hodograph. For example If I approximate data points which say are on a sine function using bspline, I would like to take the derivative of that approximated curve and get cosine function. But I am not able to get that using this algorithm. I am getting an hodograph.
Hi Suparno. I may be confused by your terminology. When I read the original post I imagined a Hodograph as graphical vector plot with a curve joining the ends of the vectors (I had to look it up). I understand these are historically velocity plots in 2 dimensions over some independent quantity, usually time. To me this implied that you were starting with a parametric curve with at least 2 dimensions (such as position in 2d or 3d over time) the plot of the velocity vector (differential of the curve) would then be a hodograph.
My interpretation of the example you give appears to have only one dependent value (sin) vs some parameter (time?). When you differentiate this I don't see how you get a hodograph as it's just another one dimensional function.