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|
MS = 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:
Gsx = Gsxi = |Pi-1|
|Pi |
|Pi+1|
|Pi+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.