the essentials of cagd
play

The Essentials of CAGD Chapter 6: B ezier Patches Gerald Farin - PowerPoint PPT Presentation

The Essentials of CAGD Chapter 6: B ezier Patches 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


  1. The Essentials of CAGD Chapter 6: B´ ezier Patches 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 / 46

  2. Outline Introduction to B´ ezier Patches 1 Parametric Surfaces 2 Bilinear Patches 3 B´ ezier Patches 4 Properties of B´ ezier Patches 5 Derivatives 6 Higher Order Derivatives 7 The de Casteljau Algorithm 8 Normals 9 10 Changing Degrees 11 Subdivision 12 Ruled B´ ezier Patches 13 Functional B´ ezier Patches 14 Monomial Patches Farin & Hansford The Essentials of CAGD 2 / 46

  3. Introduction to B´ ezier Patches The “Utah” teapot composed of B´ ezier patches Surfaces: – Basic definitions – Extend the concept of B´ ezier curves Farin & Hansford The Essentials of CAGD 3 / 46

  4. Parametric Surfaces Parametric curve: mapping of the real line into 2- or 3-space Parametric surface: mapping of the real plane into 3-space R 2 is the domain of the surface – A plane with a ( u , v ) coordinate system Corresponding 3D surface point:  f ( u , v )  x ( u , v ) = g ( u , v )   h ( u , v ) Farin & Hansford The Essentials of CAGD 4 / 46

  5. Parametric Surfaces Example: Parametric surface   u x ( u , v ) = v   u 2 + v 2 Only a portion of surface illustrated This is a functional surface Parametric surfaces may be rotated or moved around – More general than z = f ( x , y ) Farin & Hansford The Essentials of CAGD 5 / 46

  6. Bilinear Patches Typically interested in a finite piece of a parametric surface – The image of a rectangle in the domain The finite piece of surface called a patch Let domain be the unit square { ( u , v ) : 0 ≤ u , v ≤ 1 } Map it to a surface patch defined by four points � � b 0 , 0 � � 1 − v � b 0 , 1 � x ( u , v ) = 1 − u u b 1 , 0 b 1 , 1 v Surface patch is linear in both the u and v parameters ⇒ bilinear patch Farin & Hansford The Essentials of CAGD 6 / 46

  7. Bilinear Patches Bilinear patch: � � b 0 , 0 � � 1 − v � b 0 , 1 � x ( u , v ) = 1 − u u b 1 , 0 b 1 , 1 v Geometric interpretation: rewrite as x ( u , v ) = (1 − v ) p u + v q u where p u = (1 − u ) b 0 , 0 + u b 1 , 0 q u = (1 − u ) b 0 , 1 + u b 1 , 1 Farin & Hansford The Essentials of CAGD 7 / 46

  8. Bilinear Patches Example: Given four points b i , j and compute x (0 . 25 , 0 . 5)         0 1 0 1 b 0 , 0 = 0 b 1 , 0 = 0 b 0 , 1 = 1 b 1 , 1 = 1         0 0 0 1       0 1 0 . 25 p u = 0 . 75  + 0 . 25  = 0 0 0     0 0 0  0   1   0 . 25  q u = 0 . 75  + 0 . 25  = 1 1 1     0 1 0 . 25   0 . 25 x (0 . 25 , 0 . 5) = 0 . 5 p u + 0 . 5 q u = 0 . 5   0 . 125 Farin & Hansford The Essentials of CAGD 8 / 46

  9. Bilinear Patches Rendered image of patch in previous example Farin & Hansford The Essentials of CAGD 9 / 46

  10. Bilinear Patches Bilinear patch: x ( u , v ) = (1 − v ) p u + v q u Is equivalent to x ( u , v ) = (1 − u ) p v + u q v where p v = (1 − v ) b 0 , 0 + v b 0 , 1 q v = (1 − v ) b 1 , 0 + v b 1 , 1 Farin & Hansford The Essentials of CAGD 10 / 46

  11. Bilinear Patches Bilinear patch also called a hyperbolic paraboloid Isoparametric curve: only one parameter is allowed to vary Isoparametric curves on a bilinear patch ⇒ 2 families of straight lines (¯ u , v ): line constant in u but varying in v ( u , ¯ v ): line constant in v but varying in u Four special isoparametric curves (lines): ( u , 0) ( u , 1) (0 , v ) (1 , v ) Farin & Hansford The Essentials of CAGD 11 / 46

  12. Bilinear Patches A hyperbolic paraboloid also contains curves Consider the line u = v in the domain As a parametric line: u ( t ) = t , v ( t ) = t Domain diagonal mapped to the 3D curve on the surface d ( t ) = x ( t , t ) In more detail: � � b 0 , 0 � � 1 − t � b 0 , 1 � d ( t ) = 1 − t t b 1 , 0 b 1 , 1 t Collecting terms now gives d ( t ) = (1 − t ) 2 b 0 , 0 + 2(1 − t ) t [1 2 b 0 , 1 + 1 2 b 1 , 0 ] + t 2 b 1 , 1 ⇒ quadratic B´ ezier curve Farin & Hansford The Essentials of CAGD 12 / 46

  13. Bilinear Patches Example: Compute the curve on the surface for u ( t ) = t , v ( t ) = t  0  c 0 = b 0 , 0 = 0   0   0 . 5 c 1 = 1 2[ b 1 , 0 + b 0 , 1 ] = 0 . 5   0   1 c 2 = b 1 , 1 = 1   1 d ( t ) = c 0 B 2 0 ( t ) + c 1 B 2 1 ( t ) + c 2 B 2 2 ( t ) Farin & Hansford The Essentials of CAGD 13 / 46

  14. B´ ezier Patches Bilinear patch using linear Bernstein polynomials: � � B 1 � � b 0 , 0 � 0 ( v ) b 0 , 1 B 1 B 1 � x ( u , v ) = 0 ( u ) 1 ( u ) B 1 b 1 , 0 b 1 , 1 1 ( v ) Generalization: B n     b 0 , 0 . . . b 0 , n 0 ( v ) . . . � B m B m � . . . x ( u , v ) = 0 ( u ) . . . m ( u )     . . .     B n . . . n ( v ) b m , 0 b m , n = b 0 , 0 B m 0 ( u ) B n 0 ( v ) + . . . + b i , j B m i ( u ) B n j ( v ) + . . . + b m , n B m m ( u ) B n n ( v ) Examples: m = n = 1: bilinear m = n = 3: bicubic Farin & Hansford The Essentials of CAGD 14 / 46

  15. B´ ezier Patches    B n  b 0 , 0 . . . b 0 , n 0 ( v ) . . . � B m B m � . . . x ( u , v ) = 0 ( u ) . . . m ( u )     . . .     B n b m , 0 . . . b m , n n ( v ) Abbreviated as x ( u , v ) = M T B N 2-stage explicit evaluation method at given ( u , v ) Step 1: generate c i C = M T B = [ c 0 , . . . , c n ] Step 2: generate point on surface x ( u , v ) = C N (“explicit” because Bernstein polynomials evaluated) Farin & Hansford The Essentials of CAGD 15 / 46

  16. B´ ezier Patches x ( u , v ) = M T B N ⇒ x ( u , v ) = C N Control points c 0 , . . . , c n of C do not depend on the parameter value v Curve C N : curve on surface – Constant u – Variable v ⇒ isoparametric curve or isocurve Farin & Hansford The Essentials of CAGD 16 / 46

  17. B´ ezier Patches Example: Evaluate the 2 × 3 control net at ( u , v ) = (0 . 5 , 0 . 5)           0 3 6 9 0 0 0 0             6 0 0 6             0 3 6 9     B = 3 3 3 3             3 0 0 0             0 3 6 9     6 6 6 6           6 0 0 6 Step 1) Compute quadratic Bernstein polynomials for u = 0 . 5: M T = � � 0 . 25 0 . 5 0 . 25 ⇒ Intermediate control points           0 3 6 9 C = M T B = 3 3 3 3           4 . 5 0 0 3 B´ ezier points of an isoparametric curve containing x (0 . 5 , 0 . 5) Farin & Hansford The Essentials of CAGD 17 / 46

  18. B´ ezier Patches Step 2) Compute cubic Bernstein polynomials for v = 0 . 5:  0 . 125  0 . 375   N =   0 . 375   0 . 125   4 . 5 x (0 . 5 , 0 . 5) = C N = 3   0 . 9375 Farin & Hansford The Essentials of CAGD 18 / 46

  19. B´ ezier Patches Another approach to 2-stage explicit evaluation: x ( u , v ) = M T B N D = B N x = M T D v -isoparametric curve Farin & Hansford The Essentials of CAGD 19 / 46

  20. Properties of B´ ezier Patches B´ ezier patches properties essentially the same as the curve ones Endpoint interpolation: 1 – Patch passes through the four corner control points – Control polygon boundaries define patch boundary curves Symmetry: 2 Shape of patch independent of corner selected to be b 0 , 0 Affine invariance: 3 Apply affine map to control net and then evaluate identical to applying affine map to the original patch Convex hull property: 4 x ( u , v ) in the convex hull of the control net for ( u , v ) ∈ [0 , 1] × [0 , 1] Bilinear precision: Sketch on next slide 5 Tensor product: 6 ⇒ evaluation via isoparametric curves Farin & Hansford The Essentials of CAGD 20 / 46

  21. Properties of B´ ezier Patches A degree 3 × 4 control net with bilinear precision Boundary control points evenly spaced on lines connecting the corner control points Interior control points evenly-spaced on lines connecting boundary control points on adjacent edges Farin & Hansford The Essentials of CAGD 21 / 46 Patch identical to the bilinear interpolant to the four corner control points

  22. Properties of B´ ezier Patches Tensor product property very powerful conceptual tool for understanding B´ ezier patches Shape as a record of the shape of a template moving through space Template can change shape as it moves Shape and position is guided by “columns” of B´ ezier control points Farin & Hansford The Essentials of CAGD 22 / 46

  23. Derivatives A derivative is the tangent vector of a curve on the surface Called a partial derivative There are two isoparametric curves through a surface point The v = constant curve is a curve on the surface with parameter u – Differentiate with respect to u x u ( u , v ) = ∂ x ( u , v ) ∂ u Called the u − partial Farin & Hansford The Essentials of CAGD 23 / 46

Recommend


More recommend