For a B-spline, the curve does not neccessarily pass through __any__
control point, but it is C(0), C(1), and C(2) continuous at the
curve segment end points. Therefore, a B-spline curve is
"smoother" than either the Hermite or Bezier curves.

as before : x(t) = TMSG Sx with Ms as below:

|-1 3 -3 1| M_{S}= 1/6 | 3 -6 3 0| |-3 0 3 0| | 1 4 1 0|

TMS = 1/6 [(-t^3 + 3t^2 - 3t +1)(+3t^3 - 6t^2 + 4)(-3t^3 + 3t^2 + 3t +1)(t^3)]

Note for:

t = 0 TMS = 1/6 [(1)(4)(1)(0)]

t = 1 TMS = 1/6 [(0)(1)(4)(1)]

so the curve position is never determined by any single point, in
contrast to the Hermite and Bezier curves.

For B-Spline we use a different Geometry matrix between each pair of adjacent points.

That is:

G_{sx}= G_{sxi}= |P_{i-1}| |P_{i}| |P_{i+1}| |P_{i+2}|

Proof that B-splines are C(0), C(1), and C(2)
continuous

{for Point i}

Look at C(1), C(2) continuity for GSx = GSxi at t =1

xi(1) = (xi + 4xi+1 + xi+2)/6

d(TMS)/dt = 1/6[(-3t2 + 6t - 3) (9t2-12t) (-9t2 +6t +3) (3t2)]

d2(TMS)/dt2 = 1/6[(-6t + 6) (18t -12) (-18t + 6) (6t)]

so dxi /dt|t=1 = (-3xi + 3xi+2)/6 = (-xi + xi+2)/2

d2xi /dt|t=1 = (6xi - 12xi+1 + 6xi+2 )/6

= xi - 2xi+1 + xi+2

Now repeat Process for next Point, i.e. GSx = GSxi+1 and evaluate at t = 0

xi+1(0) = 1/6[(1)(4)(1)(0)] Pi+1x

= 1/6(xi + 4xi+1 + xi+2)

dxi+1/dt|t=0 = 1/6[((-3)(0)(+3)(0))]Pi+1x

= (-xi + xi+2 )/2

d2x i+1 /dt| t=0 = xi - 2xi+1 + xi+2

therefore, C(0), C(1), C(2) continuous

A program illustrating B Splines.

Splines main page

HyperGraph Table of
Contents.

HyperGraph Home page.