Problem 3 | Local Control § A problem with Bezier curves is their lack of local control. Simply increasing the number of control points adds little local control to the curve § Bezier combine all the points to create the curve.
B-splines § B-spline curves are powerful generalization of Bezier curves. § The B in B-spline stands for ”basis”. § B-spline segments are joined at knots. The blending functions uses a knot vector in every computation (instead of all of the control points) § When these knots are spaced evenly, the B-spline is said to be uniform, and non-uniform otherwise.
B-splines | Advantages § Hermite and Bezier Curves can provide C1 continuity. B-spline Curves can provide C2 continuity § Example, 2 Bezier Curves with 4 control points (thus, Cubic) § C1 because S = W and C2 if we arrange thing to make T = U
If two Bezier curves are joined at a point S, both their first and second derivatives match at S (i.e., they are C2 continuous) if and only if their control polygons fit an A-Frame.
Algorithm 1. Divide each leg of the control polygon in thirds by making 2 “division” points. 2. At each Bi, except the first and last, draw the line segment between the 2 nearest “division” points, and call the midpoint Si. This create an A-Frame with Bi at the top. Include, S0 = B0 and Sn = Bn Y=1/3B0 + 2/3B1 X=2/3B0 + 1/3B1 W=2/3B1 + 1/3B2 Z=1/3B1 + 2/3B2
Algorithm 3. Si is the average of the ends of its “cross-segment” so that, for instance: S1 = 1/2(Y) + 1/2(W) = 1/6(B0 ) + 2/3(B1 ) + 1/6(B2 ) Y=1/3B0 + 2/3B1 X=2/3B0 + 1/3B1 W=2/3B1 + 1/3B2 Z=1/3B1 + 2/3B2
Algorithm 4. Finally sketch a cubic Bezier curve from each point Si to the next, using as Bezier control points the two “division” points. Remember, B0 (t)=(1-t)3, B1 (t)=3t(1-t)2, B2 (t)=3t2(1-t), B3 (t)=(t)3
Test Yourselves § Draw the following curve as Cubic B-spline and as Bezier (source code available on GitHub) § Change the position of P 4 as shown § In the picture and compare results 24