the essentials of cagd
play

The Essentials of CAGD Chapter 10: B-Spline Curves Gerald Farin - PowerPoint PPT Presentation

The Essentials of CAGD Chapter 10: B-Spline Curves Gerald Farin & Dianne Hansford CRC Press, Taylor & Francis Group, An A K Peters Book www.farinhansford.com/books/essentials-cagd 2000 c Farin & Hansford The Essentials of CAGD


  1. The Essentials of CAGD Chapter 10: B-Spline Curves Gerald Farin & Dianne Hansford CRC Press, Taylor & Francis Group, An A K Peters Book www.farinhansford.com/books/essentials-cagd � 2000 c Farin & Hansford The Essentials of CAGD 1 / 47

  2. Outline Introduction to B-Spline Curves 1 Basic Definitions 2 The de Boor Algorithm 3 Practicalities of the de Boor Algorithm 4 Properties of B-spline Curves 5 B-splines: The Building Block 6 Knot Insertion 7 Periodic B-spline Curves 8 Derivatives 9 Farin & Hansford The Essentials of CAGD 2 / 47

  3. Introduction to B-Spline Curves B-spline curves provide a more complete theory of splines compared with composite B´ ezier curves Sometimes called NURBS (Non-Uniform Rational B-Splines) Farin & Hansford The Essentials of CAGD 3 / 47

  4. Basic Definitions B´ ezier curve x ( t ) = b 0 B n 0 ( t ) + . . . + b n B n n ( t ) – Properties determined by basis functions B n i – Each Bernstein basis function is a polynomial function B-spline curve x ( u ) = d 0 N n 0 ( u ) + . . . + d D − 1 N n D − 1 ( u ) – Defined by piecewise polynomial basis functions – N n i ( u ) are the degree n B-splines – de Boor points or control points d i Farin & Hansford The Essentials of CAGD 4 / 47

  5. Basic Definitions Three cubic B-spline curves – Each has same number of de Boor points – Number of polynomial segments? – Continuity? Farin & Hansford The Essentials of CAGD 5 / 47

  6. Basic Definitions Degree n B-spline curve defined by control polygon d 0 , . . . , d D − 1 Also defined by a knot sequence u 0 , . . . , u K − 1 where u i +1 ≥ u i Up to n consecutive knots may coincide D = K − n + 1 D equal to number of consecutive n -tuples of knots Farin & Hansford The Essentials of CAGD 6 / 47

  7. Basic Definitions Domain knots u n − 1 , . . . , u K − n Parameter values within this range used for evaluating a B-spline curve u n − 1 is the last knot in the first n -tuple u K − n is the first knot in the last n -tuple Up to n knots may coincide – Number of coincident values is the multiplicity If the first and last n knots are multiplicity n ⇒ Curve passes through the first and last de Boor points Knot with multiplicity one called a simple knot Farin & Hansford The Essentials of CAGD 7 / 47

  8. Basic Definitions If u i = u i +1 then the interval [ u i , u i +1 ] has length zero Number of polynomial segments L equal to the number of nonzero length intervals within the domain knots If all interior domain knots u n , . . . , u K − n − 1 are simple ⇒ L = K − 2 n + 1 or L = D − n Span: interval [ u i , u i + m ] for m > 0 – Span of length m – Number of spans of length n equals number of legs of the control polygon Farin & Hansford The Essentials of CAGD 8 / 47

  9. Basic Definitions Example: Top cubic curve in previous Figure Knot sequence – Number of knots K = 9 u 0 u 1 u 2 u 3 u 4 u 5 u 6 u 7 u 8 0 0 0 1 2 3 4 4 4 u 0 = u 1 = u 2 ⇒ multiplicity 3 u 6 = u 7 = u 8 ⇒ multiplicity 3 All other knots are simple knots Number of de Boor points D = 9 − 3 + 1 = 7 Domain knots u 2 , . . . , u 6 (solid circle on the curve) First and last circle correspond to the first and last de Boor point L = 4 polynomial segments Farin & Hansford The Essentials of CAGD 9 / 47

  10. Basic Definitions Example: Middle cubic curve in Figure Knot sequence – Number of knots K = 9 u 0 u 1 u 2 u 3 u 4 u 5 u 6 u 7 u 8 0 0 0 1 1 1 2 2 2 Number of control points D = 7 Domain knots: u 2 , . . . , u 6 Multiplicity of the knots equal to the degree ⇒ curve passes through the de Boor points – Influences the smoothness of the curve segments L = 2 polynomial segments Farin & Hansford The Essentials of CAGD 10 / 47

  11. Basic Definitions Example: Bottom cubic curve in Figure Knot sequence – Number of knots K = 9 u 0 u 1 u 2 u 3 u 4 u 5 u 6 u 7 u 8 0 1 2 3 4 5 6 7 8 All knots simple Number of control points D = 7 Domain knots are u 2 , . . . , u 6 L = 4 polynomial segments ————————————————- Some texts add one extra knot at either end of the knot sequence – Not necessary – Made popular by a flaw in the data exchange standard IGES Farin & Hansford The Essentials of CAGD 11 / 47

  12. The de Boor Algorithm B-spline curves evaluated using the de Boor algorithm – Named after Carl de Boor who did pioneering work on B-splines – Algorithm uses repeated linear interpolation Let evaluation parameter u be within domain knots Determine the index I such that u I ≤ u < u I +1 ⇒ u ∈ [ u I , u I +1 ) ⊂ [ u n − 1 , u K − n ] Exception: u = u K − n then set I = K − n − 1 last domain interval Farin & Hansford The Essentials of CAGD 12 / 47

  13. The de Boor Algorithm The de Boor algorithm computes u i + n − k − u u − u i − 1 d k − 1 d k − 1 d k i ( u ) = i − 1 ( u ) + ( u ) i u i + n − k − u i − 1 u i + n − k − u i − 1 k = 1 , . . . , n , for and i = I − n + k + 1 , . . . , I + 1 The point on the curve is x ( u ) = d n I +1 ( u ) Farin & Hansford The Essentials of CAGD 13 / 47

  14. The de Boor Algorithm Convenient schematic tool – triangular diagram: d I − n +1 . . d 1 . I − n +2 . . . . . . . . d 1 d n d I +1 . I +1 I +1 One evaluation involves n + 1 de Boor points ⇒ B-splines known for local control Geometric interpretation of the de Boor algorithm: – Each step is simply linear interpolation – May be viewed as an affine map d k − 1 i − 1 , d k − 1 [ u i + n − k , u i − 1 ] ⇒ i Point d k i is the image of u under this affine map Farin & Hansford The Essentials of CAGD 14 / 47

  15. The de Boor Algorithm Farin & Hansford The Essentials of CAGD 15 / 47

  16. The de Boor Algorithm Example: Linear ( n = 1) B-spline curve given by the control polygon � − 1 � � 0 � � 1 � � 1 � , , , 0 1 1 2 and the knot sequence 0 1 2 3 u 0 u 1 u 2 u 3 Number of segments L = 3 Evaluate at parameter value u = 1 . 5 Parameter value in knot interval [ u 1 , u 2 ] ⇒ I = 1 Only one stage with i = 2 2 ( u ) = u 2 − u 1 ( u ) + u − u 1 d 1 d 0 d 0 2 ( u ) u 2 − u 1 u 2 − u 1 � 0 � � 1 � � 0 . 5 � x (1 . 5) = d 1 2 (1 . 5) = 0 . 5 + 0 . 5 = 1 1 1 Farin & Hansford The Essentials of CAGD 16 / 47

  17. The de Boor Algorithm Example: quadratic ( n = 2) Farin & Hansford The Essentials of CAGD 17 / 47

  18. The de Boor Algorithm Example: cubic ( n = 3) Farin & Hansford The Essentials of CAGD 18 / 47

  19. Practicalities of the de Boor Algorithm Take a look at knot multiplicity and a data structure Evaluation for display: – Choose an increment to step along the curve – For piecewise polynomials: specify increment for each segment (Avoid missing a piece of the curve) – Segments correspond to non-zero length knot intervals – Want to avoid plotting zero-length segments ⇒ Label non-zero length segments as part of data structure Farin & Hansford The Essentials of CAGD 19 / 47

  20. Practicalities of the de Boor Algorithm Expanded knot sequence: Floating point array with every knot stored explicitly Alternative approach: – Store only the unique floating point values – Create an integer array indicating knot multiplicity ⇒ knot multiplicity vector Example: 0 . 0 0 . 0 0 . 0 1 . 0 2 . 0 3 . 0 3 . 0 4 . 0 5 . 0 5 . 0 5 . 0 u 0 u 1 u 2 u 3 u 4 u 5 u 6 u 7 u 8 u 9 u 10 3 0 0 1 1 2 0 1 3 0 0 Example: 5 . 0 6 . 0 10 . 0 11 . 0 12 . 5 u 0 u 1 u 2 u 3 u 4 1 1 1 1 1 Search only within the domain knots for non-zero length intervals Farin & Hansford The Essentials of CAGD 20 / 47

  21. Practicalities of the de Boor Algorithm Given parameter value u u ∈ [ u I , u I +1 ) ⊂ [ u n − 1 , u K − n ] and u I � = u I +1 (Exception for u = u K − n : set I = K − n − 1 – the last domain interval) Determine interval it is in and multiplicity r – If u = u I ⇒ r is multiplicity of u I , otherwise r = 0 Simplify the de Boor algorithm u i + n − k − u u − u i − 1 d k d k − 1 d k − 1 i ( u ) = i − 1 ( u ) + ( u ) i u i + n − k − u i − 1 u i + n − k − u i − 1 k = 1 , . . . , n − r , for and i = I − n + k + 1 , . . . , I + 1 The point on the curve is x ( u ) = d n − r I +1 − r ( u ) Farin & Hansford The Essentials of CAGD 21 / 47

  22. Properties of B-spline Curves Affine invariance Differentiability: At a simple knot u i curve is C n − 1 At knot with multiplicity r curve is C n − r Endpoint interpolation: Full multiplicity at end knots ⇒ curve will pass through end control points If u 0 = . . . = u n − 1 ⇒ x ( u n − 1 ) = d 0 If u K − n = . . . = u K − 1 ⇒ x ( u K − n ) = d D − 1 Farin & Hansford The Essentials of CAGD 22 / 47

  23. Properties of B-spline Curves Local control: Change a control point d i ⇒ Only the closest n + 1 curve segments change Curve degrees (from top): n = 2 , 3 , 4 – Affected curve areas become larger as the degree increases Property clear from de Boor algorithm Makes B-spline curves flexible – Can modify only part of curve Farin & Hansford The Essentials of CAGD 23 / 47

Download Presentation
Download Policy: The content available on the website is offered to you 'AS IS' for your personal information and use only. It cannot be commercialized, licensed, or distributed on other websites without prior consent from the author. To download a presentation, simply click this link. If you encounter any difficulties during the download process, it's possible that the publisher has removed the file from their server.

Recommend


More recommend