   Understanding Maths Of B-spline's
  Hi guys, Ive been trying to understand b-splines resently as I have been using splines withing Blender. I should say that ive just finished my fisrt year of a-level in the uk doing maths and further maths as an idea for the level Im at. I learn about bezier curves a while ago and I understand them fine and can use them happly wherever. When I started to learn about b-splines I seem to get quite confused as terminology doesnt seem to mean the same things in different articles, or terms were simply not well defined in the first place. So i started here which I thought was all good untill I got up to the b-spline bit. I think what is confusing the most about that is that the author seems to use t as the paramater for everything for the approximate Gaussian to the weird position of Knots diagram. So could anyone point me in the direction of a good b-spline tutorial/learn article or even a good book, that would be so helpful. Could anyone also define what a 'knot' is for me to. From looking on wolfram it seems to me that its something to do with the paramater (here) but than the t0=t1=t2=t3 in the diagram just confused me.Thanks guys, i don't expect anyone to spoon feed me here, i know that would be time confusing for you and I like also figuring it out myself, its a lot of fun, but I think Ive just have quite bad grounding with all this stuff and im looking at information (like on wolfram) that is to advanced or other information that explains by doing, where as I prefer the pure theory and ill work from there, thanks.   
  I always keep this B-Spline reference handy:B-Spline Construction Summary;  Thanks Zipster, that looks to be a helful doc. However Im still a little confused. In your doc it describe the degree of the spline well and thats fine I get that, but when I look on wolfram it defines the degree differently. If I take a look at both ways, so lets say I have 22 knots indexed from 0 to 21 and 8 control points indexed from 0 to 7, K = {t_0, t_1 ... t_21} is the knot vector. By the docs info the degree of the curve should be 7 :- [ t_0 ... t_6 | t_7 ... t_14 | t_15 ... t_21]. Now that seem very loggical to me and then the degree can be defined as, (no. of knots - no. of CP's)/2 and then depending on how the knots and CP's are indexed that might change but basically that the degree. then on wolfram however the degree is defined as m-n-1 or put into terms of no. of CP's or knots its, (no. of knots - no. of CP's -3). Now this doesnt make any sense because if i then apply that to the scenario I gave that would make the degree 11.(see EDIT)Now this doesn't make any sense. I dont want to go saying wolfram is wrong, because it like the holy grail of maths, but to me this does seem odd, and I think its because on wolfram the degree given does fit with the diagram and even weirded is the fact that 2 CP's don't have any associated knots. I will obviously be wrong in some of my think in my ramblings somewhere here but could any explain to me wots going on, thanks guys :-)(ps I understand that the no. of knots is related in some way to the no. of CP's, you cant just have any random no. of CP's and any random no. of knots)EDIT : Sorry just realised the way that I converted the wolfram degree wasnt right, gives different answer if you use the proper wolfram degree identity. However even using that still give the degree of my scenario as 13, which doesnt make any more sence![Edited by - Genesiiis on August 7, 2008 7:34:39 AM];  Hi guys, I think ive cracked it all, the problem I belive I was having is I wasnt abstracting the concept of b-splines in my head, and that is due to the fact that the articles etc I was looking at all gave a very un-abstract approach, tricking my mind in to thinking that the b-spline is formed on for certain paramaters or something like that. I found and extremely helful wolfram presentation that clears it up, but I would still love any other articles etc on b-splines, infact any splines for that matter if anyone has and links or any other info, thanks Guys.   ;  The discrepency comes from the fact that the document I linked is for interpolating B-Splines, which are different than the standard B-Splines Wolfram is discussion.  I apologize for not remembering sooner :/With interpolating splines, you chose a set of points you want to interpolate and create a knot for each point (so that you know at what value of 't' the curve passes through each point).  You also know the degree of the spline you want (cubic for instance).  The goal now is to create the control points such that your spline passes through all your interpolation points, which is why you're solving that giant system of equations later in the document (via matrix inversion).  You need to add 'p' knots onto both ends of the knot vector, as explained in the document, due to the nature of the basis functions.  We find that an interpolating B-Spline with 'i' interpolation points requires i + 2p knots total.  Plug this into the Wolfram equation, and the number of actual control points we need to solve for is n = m - p - 1 = i + 2p - p - 1 = i + p - 1.  So this is the number of interpolation points, plus 3 - 1 = 2 extra in the case of a cubic spline.  These 2 extra degrees of freedom are used to constrain the second derivative of the curve at the start and end interpolation points (so that we can create natural splines).  Or, you can use them to constrain something else.  The bottom line is that we contrived a special knot vector so that we could do interpolation, and now we have to deal with extra degrees of freedom.I hope that was clear, even I get confused with B-Splines when I haven't looked at them in a while [smile];  Thanks sooo much Zipster, It is all forming in my mind now, I wont go out of my way and say I total understand all the maths of the b-splines, but I deffinatly understand most of it now, and wot there all about and the I suppose the most important thing now is that I feel I can go away and start using b-spline, perhaps even write my own simple b-spline editor (if im lucky :-)) Thanks again Zipster.   