Download presentation

1
**Splines IV – B-spline Curves**

based on: Michael Gleicher: Curves, chapter 15 in Fundamentals of Computer Graphics, 3rd ed. (Shirley & Marschner) Slides by Marc van Kreveld

2
**Interpolation vs. approximation**

Interpolation means passing through given points, approximation means getting “close” to given points Bézier curves and B-spline curves p2 p2 p1 p1 p0 p3 p0 p3 p1 and p2 are interpolated p1 and p2 are approximated

3
**B-spline curves Approximates all control points**

Polynomials of any degree d C d-1 continuous everywhere

4
**B-spline curves A linear combination of the control points**

The bi(t) are the basis functions and show how to blend the points The basis functions are splines themselves B-splines B-splines stands for basis splines the contribution of point pi to the curve depending on the parameter value t bi(t) t

5
**B-splines and B-spline curves**

pi-1 pi pi+1 t’ bi-1(t) bi(t) bi+1(t) 0.15 0.55 0.3 t

6
**B-splines and B-spline curves**

pi-1 pi bi-1(t’)=0.15 bi(t’)=0.55 pi+1 bi-1(t) bi(t) bi+1(t) 0.15 0.55 0.3 bi+1(t’)=0.3 t t’

7
**B-splines and B-spline curves**

pi-1 pi pi+1 bi-1(t) bi(t) bi+1(t) 0.15 0.55 0.3 the blended point determined by pi-1, pi , pi+1 and their basis functions t t’

8
**B-spline curves A B-spline curve of n points and parameter value k**

is C k-2 continuous is made of polynomials of degree k – 1 has local control: any location on the curve is determined by only k control points is bounded by the convex hull of the control points has the variation diminishing property (any line intersects the B-spline curve at most as often as that line intersects the control polygon)

9
**Types of B-splines Uniform linear B-splines**

Uniform quadratic B-splines Uniform cubic B-splines Non-uniform B-splines NURBS (non-uniform rational B-splines) To define the B-splines is to define the B-spline curve

10
**Uniform linear B-splines**

Basis functions are piecewise linear, for example: i t i+1 i +1 t i +2 otherwise 1 b1,2(t) The 2 in the subscript of the b-function denotes the parameter = degree +1 1 2 3 4 5 knots

11
**Uniform linear B-splines**

1 b1,2(t) 1 2 3 4 5 1 b2,2(t) Three B-splines, each with 3 knots, 5 knots in total 1 2 3 4 5 1 b3,2(t) 1 2 3 4 5

12
**Uniform linear B-splines**

Basis functions are piecewise linear, for example: The B-spline curve can be used for parameter values t [2, n+1] (the t where the bi,2(t) sum up to 1), given points p1, p2, …, pn The B-spline curve is just the polygonal line through the control points; only two B-splines are non-zero for any t i t i +1 i +1 t i +2 otherwise The 2 in the subscript of the b-function denotes the parameter = degree +1

13
**Uniform linear B-splines**

Each B-spline has 3 knots and they are uniformly spaced They are shifted copies of each other In total there are n+2 knots (at 1, 2, …, n+2) 1 b1,2(t) 1 2 3 4 5 1 b2,2(t) 1 2 3 4 5 1 b3,2(t) 1 2 3 4 5

14
**Uniform quadratic B-splines**

Uniform quadratic B-splines bi,3(t) have knots at i, i+1, i+2, and i+3 They are shifted copies of each other 1 b1,3(t) 1 2 3 4 5 t

15
**Uniform quadratic B-splines**

if t [i, i+1] u = t – i if t [i+1, i+2] u = t – (i+1) if t [i+2, i+3] u = t – (i+2) otherwise u is set to be in [0,1] for the t-range 1 b1,3(t) 0.5 1 2 3 4 5 t

16
**Quadratic B-spline curve**

knot p6 p3 p5 p2 p5p6p7 p2p3p4 p1p2p3 p4p5p6 p3p4p5 p1 p7 p4 control points defining this piece of curve between the knots

17
**Uniform quadratic B-splines**

At the 4 knots, the left and right derivatives are equal C1 continuous B-splines C1 continuous B-spline curve 1 b2,3(t) 0.5 1 2 3 4 5 t – 0.5 b’2,3(t) (derivative) – 1

18
**Uniform quadratic B-splines**

At the 4 knots, the left and right derivatives are equal C1 continuous B-splines C1 continuous B-spline curve Starting at t = 3, the B-splines sum up to exactly 1 Why is it important that the B-splines sum up to 1? b2,3(t) b3,3(t) b4,3(t) b5,3(t) 1 b1,3(t) 0.5 1 2 3 4 5 t

19
**Uniform quadratic B-splines**

Suppose n control points Then n B-splines and n+3 knots The B-spline curve has n – 2 quadratic pieces, starting at the 3rd knot and ending at the n+1st knot

20
**Uniform quadratic B-splines**

What is the starting point and what is the ending point of the uniform quadratic B-spline curve using control points p1, p2, …, pn ? Go back two slides and look at the B-splines. The curve starts at the knot at t=3. Here the first and second B-spline both have value 0.5 and all other B-splines are 0, so the midpoint of p_1 and p_2 is the starting point of the B-spline curve.

21
**Uniform cubic B-splines**

Uniform cubic B-splines bi,4(t) have knots at i, i+1, i+2, i+3 and i+4 They are shifted copies of each other 1 b1,4(t) 2/3 0.5 1 2 3 4 5 6 t

22
**Uniform cubic B-splines**

if t [i, i+1] u = t – i if t [i+1, i+2] u = t – (i+1) if t [i+2, i+3] u = t – (i+2) if t [i+3, i+4] u = t – (i+3) otherwise 1 b1,4(t) 2/3 0.5 1 2 3 4 5 6 t

23
**Uniform cubic B-splines**

Every location on the B-spline curve is determined by four control points and their B-splines Starting at the 4th knot, t = 4, the B-spline curve can be used because the B-splines sum up to 1 A cubic B-spline is C2 continuous (the 1st and 2nd derivatives from the left and right are the same at the knots) a cubic B-spline curve is C2 continuous

24
**Uniform cubic B-splines**

At what height are the second and fourth knots of a cubic B-spline? What weight of what control points determines the first point of a B-spline curve?

25
**Closed uniform B-spline curves**

Simply repeat the first k – 1 points as the last points quadratic: p1, p2, …, pn p1, p2, …, pn, p1, p2 cubic: p1, p2, p3, …, pn p1, p2, …, pn, p1, p2, p3

26
**Non-uniform B-splines**

Uniform B-splines have knots at 1, 2, 3, …, but generally knots can have any value non-uniform B-splines The knot vector t = [t1, … , tn+k] is a sequence of non-decreasing values specifying where the knots for the parameter range t occur

27
**Non-uniform B-splines**

We can repeat control points and combine the consecutive B-splines into one allows more local control We can repeat knots and adapt the B-splines affected allows more local control When we have a sequence of control points and a useful parameter range k, ..., n+1, we may want to insert an extra point (and knot) in the middle without changing the parameter range near the ends

28
**Cox-de Boor recurrence**

Cox-de Boor recurrence for defining B-splines with parameter k and knot vector t = [t1, … , tn+k]: if ti t < ti+1 otherwise Note the definition of b at the end of the recurrence: this is a piecewise constant B-spline that is not even C0 continuous. The B-spline curve is not a proper curve, because it jumps from control point to control point at the knots. It is just a sequence of points with a parameterization at which point we are. The recurrence allows evaluation at any t value for non-uniform B-splines. The recurrence shows that parameter k B-splines are a weighted interpolation of parameter k – 1 B-splines, with weights linearly dependent on t

29
**Repeating control points in B-spline curves**

Consider quadratic B-spline curves, in the figure: Five B-splines of control points 5+3 = 8 knots (t = 1, 2, ..., 8), useful in interval [3, 6] p2 p3 p4 p5 p1 b2,3(t) b3,3(t) b4,3(t) b5,3(t) 1 b1,3(t) 0.5 1 2 3 4 5 6 7 8 t

30
**Repeating control points in B-spline curves**

Consider quadratic B-spline curves, in the figure: Suppose p1 is repeated 9 knots, useful interval [3, 7] p1 p2 p3 p4 p5 p1 b’1,3(t) b2,3(t) b3,3(t) b4,3(t) b5,3(t) 1 Since b_{1,3} and b_{2,3} are coefficients of the same point p1, we can add up their functions b1,3(t) 0.5 1 2 3 4 5 6 7 8 9 t

31
**Repeating control points in B-spline curves**

Consider quadratic B-spline curves, in the figure: Suppose p1 is repeated 9 knots, useful interval [3, 7] The B-spline curve starts at p1 at knot 3 p2 p3 p4 p5 b1,3(t) b’1,3(t) + b2,3(t) b3,3(t) b4,3(t) b5,3(t) 1 Since b_{1,3} and b_{2,3} are coefficients of the same point p1, we can add up their functions p1 0.5 1 2 3 4 5 6 7 8 9 t

32
**Repeating control points in B-spline curves**

Consider quadratic B-spline curves, in the figure: Suppose p3 is repeated 9 knots, useful interval [3, 7] p3 p3 p2 p4 p5 p1 b3,3(t) b’3,3(t) b2,3(t) b4,3(t) b5,3(t) 1 b1,3(t) 0.5 1 2 3 4 5 6 7 8 9 t

33
**Repeating control points in B-spline curves**

Consider quadratic B-spline curves, in the figure: Suppose p3 is repeated 9 knots, useful interval [3, 7] The B-spline curve passes through point p3 p3 p2 p4 p5 b3,3(t) + b’3,3(t) p1 b2,3(t) b4,3(t) b5,3(t) 1 b1,3(t) 0.5 1 2 3 4 5 6 7 8 9 t

34
**Repeating control points in B-spline curves**

For a B-spline curve with parameter k (degree k – 1), it will pass through the first and last control points if each occurs k – 1 times Similarly, we can make it pass through an intermediate control point by having k – 1 copies of that control point The level of geometric continuity, G, at an intermediate repeated control point decreases

35
**Repeating control points in B-spline curves**

On the parameter interval [4,5], only p2 and p3 have a non-zero B-spline the curve is a line segment! Also on parameter interval [5,6] p3 p2 p4 p5 b3,3(t) + b’3,3(t) p1 b2,3(t) b4,3(t) b5,3(t) 1 b1,3(t) 0.5 1 2 3 4 5 6 7 8 9 t

36
**Repeating control points in B-spline curves**

p5p6p7 p4p5p6 p1p2p3 p2p3p4 p3p4p5 knot 3 p1 p7 p4 quadratic B-spline curve

37
**Repeating control points in B-spline curves**

p5p6p7 p4p5p6 p1p2p3 p2p3p4 knot 3 p1 p3p4 p4p5 p7 p4 repeated control point p4 quadratic B-spline curve with repeated control point

38
**Repeating control points in B-spline curves**

The quadratic B-spline curve remains C1 although it is only G0 at the repeated control point p3 p2 p4 p5 b3,3(t) + b’3,3(t) p1 b2,3(t) b4,3(t) b5,3(t) 1 All B-splines remain C1 so the B-spline curve remains C1 as well. However, the speed along the B-spline curve reduces to 0 in the double control point b1,3(t) 0.5 1 2 3 4 5 6 7 8 9 t

39
**Repeating control points in B-spline curves**

p5p6p7 p4p5p6 p1p2p3 p2p3p4 knot 3 p1 p3p4 p4p5 p7 p4 repeated control point p4 quadratic B-spline curve with repeated control point

40
**Repeating knots in B-spline curves**

Repeating a knot means that one sequence of control points no longer occurs For example, for quadratic B-spline curves, the part between knots 4 and 5 (was based on points p2 p3 p4 ) The curve part before (based on points p1 p2 p3 ) directly connects to the curve part after (based on points p3 p4 p5 ) The B-splines get different shapes to accommodate the missing part

41
**Repeating knots in B-spline curves**

Repeating a knot means that one sequence of control points no longer occurs For example, for quadratic B-spline curves, the part between knots 4 and 5 (was based on points p2 p3 p4 ) b2,3(t) b3,3(t) b4,3(t) b5,3(t) 1 b1,3(t) 0.5 1 2 3 4 5 6 7 8 t

42
**Repeating knots in B-spline curves**

Repeating a knot means that one sequence of control points no longer occurs For example, for quadratic B-spline curves, the part between knots 4 and 5 (was based on points p2 p3 p4 ) b3,3(t) b2,3(t) b4,3(t) b5,3(t) 1 b1,3(t) 0.5 1 2 3 4 = 5 6 7 8 t

43
**Repeating knots in B-spline curves**

Repeating a knot means that one sequence of control points no longer occurs For example, for quadratic B-spline curves, the part between knots 4 and 5 (was based on points p2 p3 p4 ) b3,3(t) Since p1, p2, p3 have only one point in common with p3, p4, p5, the degree of continuity goes down. In particular, the B-spline b_{3,3}(t) is C0 where it passes through point p3 (at the double knot). Hence the B-spline curve is only C0 as well. b2,3(t) 1 b4,3(t) b1,3(t) b5,3(t) 0.5 1 2 3 6 7 8 4 5 t

44
**Repeating knots in B-spline curves**

p5p6p7 p4p5p6 p1p2p3 p2p3p4 p3p4p5 knot 3 repeat knot 5 p1 p7 p4 quadratic B-spline curve

45
**Repeating knots in B-spline curves**

p5p6p7 p4p5p6 p1p2p3 p2p3p4 knot 3 p1 p7 p4 knot 5 = 6 quadratic B-spline curve with repeated knot

46
**Repeating knots in B-spline curves**

Repeating a control point creates line segments on either side, but repeating a knot does not have this effect on quadratic B-spline curves Repeating a knot twice (three same knots in a sequence) creates a discontinuity in a quadratic B-spline curve Two consecutive curve parts have no point in common The curve part before the two disappearing parts (e.g., based on points p1 p2 p3 ) is disconnected from the curve part after those parts (based on points p4 p5 p6 )

47
**Repeating knots in B-spline curves**

p5p6p7 p4p5p6 p1p2p3 p2p3p4 p3p4p5 knot 3 repeat knot 5 twice p1 Note: there is no longer a curve part defined by any same point: p2,p3,p4 and p5,p6,p7 have no point in common p7 p4 quadratic B-spline curve

48
**Repeating knots in B-spline curves**

p5p6p7 p1p2p3 p2p3p4 knot 3 p1 Note: there is no longer a curve part defined by any same point: p2,p3,p4 and p5,p6,p7 have no point in common p7 p4 knot 5 = 6 = 7 quadratic B-spline curve

49
**Repeating knots in B-spline curves**

In cubic B-spline curves a double knot gives C1 and G1 continuity a triple knot gives C0 and G0 continuity a quadruple knot disconnects the curve a triple knot at the start lets p1 be the start of the curve a triple knot at the end lets pn be the end of the curve

50
**Repeating knots in B-spline curves**

For cubic B-spline curves: a double knot gives C1 continuity a triple knot gives C0 continuity C2 continuity exists because the speed along the curve essentially becomes 0 at a triple control point, so the sharp turn happens at 0 speed which can have any C-continuity in the parameter

51
**Repeating knots in B-spline curves**

Cubic B-splines for a B-spline curve passing through its endpoints, knot vector [1, 1, 1, 2, 3, 4, 5, 6, 7, 8, 8, 8] The first three and last three B-splines are different from the standard cubic B-spline shape

52
**Repeating knots in B-spline curves**

The expressions for B-splines can be determined for any parameter k and knot vector t = [t1, … , tn+k] using the Cox-de Boor recurrence (also when knots are repeated): if ti t < ti+1 otherwise

53
Summary B-spline curves are defined by B-splines and provide great flexibility in curve design They exist of any order (degree) and continuity Repeating control points or knots allows interpolation instead of approximation B-spline surfaces are a direct generalization Even more general are NURBS: Non-Uniform Rational B-Splines defined using ratios of two polynomials allow conic sections (circles, ellipses, hyperbolas)

Similar presentations

© 2021 SlidePlayer.com Inc.

All rights reserved.

To make this website work, we log user data and share it with processors. To use this website, you must agree to our Privacy Policy, including cookie policy.

Ads by Google