Practical Linear Algebra: a Geometry Toolbox Fourth Edition Chapter 20: Curves

Practical Linear Algebra: a Geometry Toolbox Fourth Edition Chapter 20: Curves

Practical Linear Algebra: A Geometry Toolbox Fourth Edition Chapter 20: Curves Gerald Farin & Dianne Hansford A K Peters/CRC Press www.farinhansford.com/books/pla c 2021 Farin & Hansford Practical Linear Algebra 1 / 32 Outline 1 Introduction to Curves 2 Parametric Curves 3 Properties of B´ezier Curves 4 The Matrix Form 5 Derivatives 6 Composite Curves 7 The Geometry of Planar Curves 8 Moving along a Curve 9 WYSK Farin & Hansford Practical Linear Algebra 2 / 32 Introduction to Curves Focus of this chapter: cubic B´ezier curves Invented for car design — France early 1960s at R´enault and Citro¨en in Paris — Techniques still in use today — called Geometric Modeling or Computer-Aided Geometric Design Apply linear algebra and geometric concepts to the study of curves Farin & Hansford Practical Linear Algebra 3 / 32 Parametric Curves Straight line in parametric form: x(t) = (1 − t)a + tb ⇒ x(0) = a and x(1) = b Interpret t as time and x(t) as a moving point Coefficients (1 − t) and t are linear polynomials ⇒ linear interpolation A parametric curve: a curve that can be written as f (t) x(t)= g(t) where f (t) and g(t) are functions of the parameter t Linear interpolant: f (t) = (1 − t)a1 + tb1 and g(t) = (1 − t)a2 + tb2 In general: f and g can be any functions — polynomial, trig, exponential, ... Farin & Hansford Practical Linear Algebra 4 / 32 Parametric Curves Next: study motion along curves Cubic B´ezier curves: Start with four points in 2D or 3D b0, b1, b2, b3 B´ezier control points ⇒ B´ezier controls polygon — not assumed to be closed Farin & Hansford Practical Linear Algebra 5 / 32 Parametric Curves To create plots: evaluate the cubic curve at many t-parameters — t ∈ [0, 1] — Example: evaluate at 50 points t = 0, 1/50, 2/50,..., 49/50, 1 Evaluation points connected by straight line segments Choose enough t-parameters so the curve looks smooth ⇒ plotting a discrete approximation of the curve Two examples that differ in the location of b0 only Farin & Hansford Practical Linear Algebra 6 / 32 Parametric Curves Evaluation: the de Casteljau algorithm Generate one point — Pick a parameter value t ∈ [0, 1] — Linear interpolation on each leg 1 b0(t)=(1 − t)b0 + tb1 1 b1(t)=(1 − t)b1 + tb2 1 b2(t)=(1 − t)b2 + tb3 Repeat on new polygon 2 1 1 b0 = (1 − t)b0(t)+ tb1(t) 2 1 1 b1 = (1 − t)b1(t)+ tb2(t) Repeat 3 2 2 b0(t)=(1 − t)b0(t)+ tb1(t) ⇒ Point on the B´ezier curve Farin & Hansford Practical Linear Algebra 7 / 32 Parametric Curves j Points bi are called intermediate B´ezier points b0 1 b1 b0 1 2 Schematic b2 b1 b0 1 2 3 b3 b2 b1 b0 stage : 1 2 3 Except for (input) B´ezier polygon each point is a function of t Farin & Hansford Practical Linear Algebra 8 / 32 Parametric Curves Example: de Casteljau algorithm at t = 1/2 4 0 8 8 b = b = b = b = 0 4 1 8 2 8 3 0 1 1 2 b1 = b + b = 0 2 0 2 1 6 1 1 4 b1 = b + b = 1 2 1 2 2 8 1 1 8 b1 = b + b = 2 2 2 2 3 4 1 1 3 b2 = b1 + b1 = 0 2 0 2 1 7 1 1 6 b2 = b1 + b1 = 1 2 1 2 2 6 9 3 1 2 1 2 2 b0 = b0 + b1 = 13 2 2 2 Farin & Hansford Practical Linear Algebra 9 / 32 Parametric Curves Equation for a cubic B´ezier curve 3 2 2 Expand: b0(t) = (1 − t)b0(t)+ tb1(t) 3 2 2 b0 = (1 − t)b0 + tb1 1 1 1 1 = (1 − t) (1 − t)b0 + tb1 + t (1 − t)b1 + tb2 = (1 − t) [(1 − t) [(1 − t)b0 + tb1]+ t [(1 − t)b1 + tb2]] + t [(1 − t) [(1 − t)b1 + tb2]+ t [(1 − t)b2 + tb3]] Collect terms with the same bi 3 3 2 2 3 b0(t) = (1 − t) b0 + 3(1 − t) tb1 + 3(1 − t)t b2 + t b3 General form of a cubic B´ezier curve 3 b0(t) traces out a curve as t traces out values between 0 and 1 3 Shorter notation: b(t) instead of b0(t) Farin & Hansford Practical Linear Algebra 10 / 32 Parametric Curves Cubic polynomials — degree 3 Bernstein basis functions 3 3 B0 (t) = (1 − t) 3 2 B1 (t) = 3(1 − t) t 3 3 3 2 B0 B3 B2 (t) = 3(1 − t)t 3 3 B3 (t)= t 3 3 3 3 3 b0(t)= B0 (t)b0 + B1 (t)b1 B1 B2 3 3 + B2 (t)b2 + B3 (t)b3 All cubic polynomials can be expressed in terms of Bernstein polynomials ⇒ form a basis for all cubic polynomials Farin & Hansford Practical Linear Algebra 11 / 32 Parametric Curves Subdivision A subset of intermediate B´ezier points form two cubic polygons — Mimic the curve’s shape 3 Curve segment from b0 to b0(t) 1 2 3 b0, b0, b0, b0 3 Curve segment from b0(t) to b3 3 2 1 b0, b1, b2, b3 Identify polygons in schematic b0 1 b1 b0 1 2 b2 b1 b0 1 2 3 b3 b2 b1 b0 Farin & Hansford Practical Linear Algebra 12 / 32 Properties of B´ezier Curves Endpoint interpolation: b(0) = b0 and b(1) = b3 Affine invariance: affine map of the control polygon then curve undergoes the same transformation ⇒ Bernstein polynomials sum to one (1 − t)3 + 3(1 − t)2t + 3(1 − t)t2 + t3 = [(1 − t)+ t]3 = 1 Every point on the curve is a barycentric combination of the control points Farin & Hansford Practical Linear Algebra 13 / 32 Properties of B´ezier Curves Bernstein polynomials are nonnegative for t ∈ [0, 1] ⇒ Every point on the curve is a convex combination of the control points ⇒ Convex hull property: for t ∈ [0, 1] the curve lies in the convex hull of the control polygon Extrapolation: evaluate the curve for t-values outside of [0, 1] — Can no longer predict the shape of the curve convexhull minmaxbox The convex hull lies inside the minmax box Farin & Hansford Practical Linear Algebra 14 / 32 The Matrix Form B´ezier curve expressed using dot products: (1 − t)3 3(1 − t)2t b(t)= b b b b 0 1 2 3 3(1 − t)t2 t3 Most well-known: cubic polynomials as combinations of the monomials: 1, t, t2, t3 Rewrite the B´ezier curve: 2 3 b(t)= b0 + 3t(b1 − b0) + 3t (b2 − 2b1 + b0)+ t (b3 − 3b2 + 3b1 − b0) ⇒ Matrix form of a B´ezier curve 1 −3 3 −1 1 0 3 −6 3 t b(t)= b b b b 0 1 2 3 0 0 3 −3 t2 00 0 1 t3 Farin & Hansford Practical Linear Algebra 15 / 32 The Matrix Form A curve in monomial form: 2 3 b(t)= b0 + 3t(b1 − b0) + 3t (b2 − 2b1 + b0)+ t (b3 − 3b2 + 3b1 − b0) 2 3 = a0 + a1t + a2t + a3t Geometrically: a0 = b0 is a point a1, a2, a3 are vectors Using the dot product form: 1 t b(t)= a a a a 0 1 2 3 t2 t3 ⇒ the monomial ai are defined as 1 −3 3 −1 0 3 −6 3 a a a a = b b b b 0 1 2 3 0 1 2 3 0 0 3 −3 00 0 1 Farin & Hansford Practical Linear Algebra 16 / 32 The Matrix Form The inverse process: Given a curve in monomial form, how to write it as a B´ezier curve? −1 1 −3 3 −1 0 3 −6 3 b b b b = a a a a 0 1 2 3 0 1 2 3 0 0 3 −3 00 0 1 A matrix inversion is all that is needed here! — Matrix is nonsingular ⇒ Any cubic curve can be written in either B´ezier or monomial form Farin & Hansford Practical Linear Algebra 17 / 32 Derivatives Cubic B´ezier curve: two (in 2D) or three (in 3D) cubic equations in t 3 3 2 2 3 b0(t) = (1 − t) b0 + 3(1 − t) tb1 + 3(1 − t)t b2 + t b3 First derivative vector: derivative in each of the components db(t) = −3(1 − t)2b − 6(1 − t)tb + 3(1 − t)2b dt 0 1 1 2 2 − 3t b2 + 6(1 − t)tb2 + 3t b3 db(t) ˙ Rearrange and use abbreviation dt = b(t) 2 2 b˙(t) = 3(1 − t) [b1 − b0] + 6(1 − t)t[b2 − b1] + 3t [b3 − b2] ⇒ Derivative curve is degree two ⇒ Derivative curve has control vectors Farin & Hansford Practical Linear Algebra 18 / 32 Derivatives One very nice feature of the de Casteljau algorithm: intermediate B´ezier points lead to simple expression of the derivative ˙ 2 2 b(t) = 3 b1(t) − b0(t) Very simple form at the endpoints ˙ ˙ b(0) = 3[b1 − b0] b(1) = 3[b3 − b2] Control polygon is tangent to the curve at the curve’s endpoints Farin & Hansford Practical Linear Algebra 19 / 32 Derivatives Example: Compute first derivative vector for t = 1/2 Evaluate the direct equation 1 1 0 4 b˙ =3 · − 2 4 8 4 1 8 0 +6 · − 4 8 8 1 8 8 9 +3 · − = 4 0 8 −3 Use intermediate control points 1 1 1 b˙ =3 b2 − b2 2 1 2 0 2 6 3 9 =3 − = 6 7 −3 Farin & Hansford Practical Linear Algebra 20 / 32 Derivatives The derivative of a curve is a vector — It is tangent to the curve Can interpret it as a velocity vector — Interpret parameter t as time then arrive at b(t) at time t with velocity b˙(t) — Large magnitude of the tangent vector ⇒ moving fast If we rotate the control polygon, the curve will follow — And so will all of its derivative vectors In calculus: a “horizontal tangent” has a special meaning — It indicates an extreme value of a function — Notion of an extreme value is meaningless for parametric curves ⋄ Term “horizontal tangent” depends on the curve’s orientation ⋄ Not a property of the curve itself Farin & Hansford Practical Linear Algebra 21 / 32 Derivatives Second derivative vector: may interpret as acceleration 2 2 b˙ (t) = 3(1 − t) [b1 − b0]+6(1 − t)t[b2 − b1]+3t [b3 − b2] ¨ b(t)= −6(1 − t)[b1 − b0] − 6t[b2 − b1]+6(1 − t)[b2 − b1]+6t[b3 − b2] = 6(1 − t)[b2 − 2b1 + b0]+6t[b3 − 2b2 + b1] Via the de Casteljau algorithm: ¨ 1 1 1 b(t) = 6 b2(t) − 2b1(t)+ b0(t) Simple form at endpoints: b¨(0) = 6[b2 − 2b1 + b0] Farin & Hansford Practical Linear Algebra 22 / 32 Composite Curves For “real” shapes need to use many cubic B´ezier curves — Smooth overall curve ⇒ pieces must join smoothly The letter “D” as a collection of cubic B´ezier curves — Only one B´ezier polygon of many is shown Farin & Hansford Practical Linear Algebra 23 / 32 Composite Curves Smoothly joining B´ezier curves Two B´ezier curves: b0, b1, b2, b3 and c0, c1, c2, c3 Common point b3 = c0 Same tangent vector direction: c1 − c0 = c[b3 − b2] For some positive real number c ⇒ b2, b3 = c0, c1 collinear Farin & Hansford Practical Linear Algebra 24 / 32 The Geometry of Planar Curves Imagine driving with constant speed Curviness of road proportional to turning of steering wheel Sample tangents at various points — Successive tangents differ significantly ⇒ curvature is high — Successive tangents

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    32 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us