1 / 49

Splines III – Bézier Curves

Splines III – Bézier Curves. based on: Michael Gleicher : Curves , chapter 15 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner ) Slides by Marc van Kreveld. Interpolation vs. approximation.

Download Presentation

Splines III – Bézier Curves

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Splines III – Bézier 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 p1and p2are interpolated p1and p2are approximated

  3. Bezier curves • Polynomial of any degree • A degree-d Bézier curve has d+1 control points • It passes through the first and last control point, and approximates the d – 1 other control points • Cubic (degree-3) Bézier curves are most common; several of these are connected into one curve

  4. Bézier curves • Cubic Bézier curves are used for font definitions • They are also used in Adobe Illustrator and many other illustration/drawing programs

  5. Bézier curves • Parameter u, first control point p0 at u=0 and last control point pd at u=1 • Derivative at p0 is the vector p0p1 , scaled by d • Derivative at pd is the vector pd-1pd , scaled by d • Second, third, …, derivatives at p0 depend on the first three, four, …, control points

  6. Cubic Bézier curve example 3 p1 p2 p0 p2p3 p2p3 p0p1 p0p1 p3 3

  7. Quintic Bézier curve example 5 p2 p3 p1 p4 p5 p4p5 p4p5 p0p1 p0p1 p0 5

  8. Cubic Bézier curves • p0 = f(0) = a0 + 0 a1 + 02a2 + 03a3p3 = f(1) = a0 + 1 a1 + 12 a2 + 13a33(p1 – p0) = f’(0) = a1+ 20 a2 + 302a33(p3 – p2) = f’(1) = a1 + 21 a2 + 312a3 basis matrix

  9. Cubic Bezier curves • f(u) = (1 – 3u + 3u2 – u3) p0 + ( 3u – 6u2 + 3u3) p1 + ( 3u2 – 3u3) p2 + ( u3) p3 • Bézier blending functionsb0,3 = (1 – u)3 b1,3 = 3 u (1 – u)2 b2,3 = 3 u2 (1 – u) b3,3 = u3

  10. Bézier curves • In general (degree d):bk,d(u) = C(d,k) uk(1 – u)d-kwhere , for 0  k  d(binomial coefficients) • The bk,d(u) are called Bernstein basis polynomials

  11. Bézier curves degrees 2 (left) up to 6 (right)

  12. Properties of Bézier curves • The Bézier curve is bounded by the convex hull of the control points  intersection tests with a Bézier curve can be avoided if there is no intersection with the convex hull of the control points

  13. Properties of Bézier curves • Any line intersects the Bézier curve at most as often as that line intersects the polygonal lie through the control points (variation diminishing property)

  14. Properties of Bézier curves • A Bézier curve is symmetric: reversing the control points yields the same curve, parameterized in reverse p2 p3 p1 p4 p3 p2 p5 p0 p4 p1 p0 p5

  15. Properties of Bézier curves • A Bézier curve is affine invariant: the Bézier curve of the control points after an affine transformation is the same as the affine transformation applied to the Bézier curve itself (affine transformations: translation, rotation, scaling, skewing/shearing) p2 p2 p3 p3 p1 p1 p4 p4 p5 p5 p0 p0

  16. Properties of Bézier curves • There are simple algorithms for Bézier curves • evaluating • subdividing a Bézier curve into two Bézier curves  allows computing (approximating) intersections of Bézier curves the point at parameter value u on the Bézier curve

  17. Bézier curves in PowerPoint • The curve you draw in PowerPoint is a Bézier curve; however you don’t specify the intermediate two control points explicitly • Select draw curve • Draw a line segment (p0 and p3) • Right-click; edit points • Click on first endpoint and move the appearing marker (p1) • Click on last endpoint and move the appearing marker (p2)

  18. Splines from Bézier curves • To ensure continuity • C0 : last control point of first piece must be same as first control point of second piece • G1 : last two control points of first piece must align with the first two control points of the second piece • C1 : distances must be the same as well q2 p2 p1 p3 q3 q0 q1 p0

  19. Intuition for Bézier curves • Keep on cutting corners to make a “smoother” curve • In the limit, the curve becomes smooth p1 p0 p2

  20. Intuition for Bézier curves • Suppose we have three control points p0 ,p1, p2;a linear connection gives two edges • Take the middle p3 of p0p1, and the middle p4 of p1p2 and place p’1 in the middle of p3 and p4 • Recurse on p0, p3, p’1 and also on p’1 , p4, p2 p1 p3 p4 p’1 p’1 p0 p0 p0 p2 p2 p2 gives a quadratic Bézier curve

  21. De Casteljau algorithm • Generalization of the subdivision scheme just presented; it works for any degree • Given d+1 points p0, p1, …, pd • Choose the value of u where you want to evaluate • Determine the u-interpolation for p0p1, for p1p2, … , and for pd-1pd , giving d points • If one point remains, we found f(u), otherwise repeat the previous step with these d points (one less than before)

  22. De Casteljau algorithm u = 1/3 p2 p1 p3 p0

  23. De Casteljau algorithm u = 1/3 p2 p1 p3 p0

  24. De Casteljau algorithm u = 1/3 p2 p1 p3 p0

  25. De Casteljau algorithm u = 1/3 p2 p1 p3 p0 one point remains, the point on the curve at u = 1/3

  26. Splitting a Bézier curve • The De Casteljau algorithm can be used to split a Bezier curve into two Bézier curves that together are the original Bézier curve p2 p1 r1 r2 r0 q3 q2 p3 q1 r3 p0 q0

  27. Splitting a Bézier curve p2 p1 p3 r1 p0 r2 r0 q3 q2 Question: Recalling that Bézier splines are C1 only if (in this case) the vector q2q3 is the same as r0r1 , does this mean that the spline is no longer C1 after splitting?!? q1 r3 q0

  28. Splitting a Bézier curve p2 p1 p3 r1 p0 r2 r0 q3 q2 Answer: q0q1q2q3 parameterizes the part u [0, 1/3] and r0r1r2r3 parameterizes the part u [1/3, 1] The condition for C1 continuity, q2q3 = r0r1 , applies only for equal parameter-length parameterizations q1 r3 q0

  29. Splitting a Bézier curve • Splitting a Bézier curve is useful to find line-Bézier or Bézier-Bézier intersections p2 p1 u = ½ p3 p0

  30. Intersecting a Bézier curve • To test if some line L intersects a Bézier curve with control points p0, p1, …, pd , test whether L intersects the poly-line p0, p1, …, pd • If not, L does not intersect the Bézier curve either • Otherwise, split the Bézier curve (with u = ½ ) andrepeat on the two pieces p2 p1 p3 p0

  31. Intersecting a Bézier curve • If the line L separates the two endpoints (p0 and p3 for cubic) of a Bézier curve, then they intersect • Repeating the split happens often only if the line L is nearly tangent to the Bézier curve p2 p1 p3 p0

  32. Intersecting a Bézier curve • If the line L separates the two endpoints (p0 and p3 for cubic) of a Bézier curve, then they intersect • Repeating the split happens often only if the line L is nearly tangent to the Bézier curve p2 p1 p3 p0

  33. Intersecting a Bézier curve • When determining intersection of a line segment and a Bézier curve we must make some small changes p2 p1 p3 p0

  34. Splitting a Bézier curve for rendering • Splitting a Bézier curve several times makes the new Bézier curve pieces be closer and closer to their control polygons • At some moment we can draw the sequence of control polygons of the pieces and these will approximate the Bézier curve well (technically this approximation is only C0)

  35. Splitting a Bézier curve for rendering p2 p1 u = ½ p3 p0

  36. Splitting a Bézier curve for rendering p0 p3 p1 p2 p2 p1 p3 p0

  37. Splitting a Bézier curve for rendering p0 p3 p1 p2 p2 p1 p3 p0

  38. Splitting a Bézier curve for rendering p0 p3 p1 p2 p2 p1 p3 p0

  39. Splitting a Bézier curve for rendering p0 p3 p1 p2 p2 p1 p3 p0

  40. Splitting a Bézier curve for rendering p0 p3 p1 p2 p2 p1 p3 p0

  41. Splitting a Bézier curve for rendering p0 p3 p1 p2 p2 p1 u = 1/2 p3 u = 3/4 u = 1/4 p0

  42. Splitting a Bézier curve for rendering p0 p3 p1 p2 p2 p1 u = 1/2 p3 u = 3/4 u = 1/4 p0

  43. Splitting a Bézier curve for rendering p0 p3 u = 1/2 p3 u = 3/4 u = 1/4 p0

  44. Splitting a Bézier curve for rendering p3 p0 p3 p0 p0 p3 p3 p0

  45. De Casteljau on quadratic, cubic and quartic Bézier curves

  46. 3D Bézier surfaces The 16 blending functions for cubic Bezier surfaces

  47. Summary • Bézier curves are elegant curves that pass through the start and end points and approximate the points in between • They exist of any order (degree) but cubic is most common and useful • Continuity between consecutive curves can be ensured • The De Casteljau algorithm is a simple way to evaluate or split a Bézier curve

  48. Questions • Consider figure 15.11, bottom left. It looks like a circular arc, but it is not. Determine whether the quadratic Bézier curve shown here goes around the midpoint of a circular arc or not • Can we ensure higher degrees of continuity than C1 with cubic Bézier splines? Discuss your answer • Suppose we want to define a closed Bezier curve of degree d. What properties must the control points have to make a C1 continuous curve? What is the minimum degree of the Bézier curve that is needed for this? What if we want a closed Bézier curve with an inflection point (boundary of a non-convex region)?

  49. Questions • Apply the De Casteljau algorithm on the points (0,0), (4,0), (6,2), and (4,6) with u = ½ by drawing the construction (note that this is a cubic Bézier curve) • Apply the De Casteljau algorithm on the points (0,0), (4,0), (6,2), (6,8), and (10,4) with u = ½ by drawing the construction (note that this is a quartic Bézier curve)

More Related