1 / 29

Splines II – Interpolating Curves

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

keenan
Download Presentation

Splines II – Interpolating 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 II – Interpolating Curves based on: Michael Gleicher: Curves, chapter 15 in Fundamentals of Computer Graphics, 3rd ed. (Shirley & Marschner) Slides by Marc van Kreveld

  2. Polynomial pieces Canonical form of a polynomial of degree n defined with vector coefficients ai Generalized form of a polynomial defined with vector coefficients cithat are blended by the m polynomials bi(t) The degree is the max of the degrees of the bi(t) Using blending polynomials is the way to make splines

  3. Recall: Basis and constraint matrices • Specifications of a curve give a constraint matrixp0 = f(0) = a0 + 0 a1 + 02a2p1 = f(0.5) = a0 + 0.5 a1 + 0.52a2p2 = f(1) = a0 + 1 a1 + 12a2 • Its inverse B = C–1 is the basis matrix (quadratic curve)

  4. Blending functions • Blending functions (or basis functions)are functions of u and specify how to “mix” the specified constraints (points to pass through, derivatives, …) • Let u = [ 1 uu2u3 … un ] be the powers of u • b(u) = uB, a vector whose elements are the blending functions

  5. Blending functions • u = [ 1 uu2u3 … un ] • b(u) = uB so we obtain for the usual quadric example with three points specified:

  6. Blending functions • We can now blend the control points

  7. Blending functions We see the contributions of each point depending on u For fixed u, we linearly interpolate the three points

  8. Blending functions 1 0 1 0.5 u

  9. Blending functions • Note the sum of the contributions +

  10. Polynomials for interpolation • Given points p = (p0, p1, … , pn) and increasing parameter values t = (t0, t1, … , tn), we can make a polynomial of degree n that passes through pi exactly at parameter value ti so f(ti) = pi p1 p2 p5 p4 p0 p3

  11. Polynomials for interpolation • Given points p = (p0, p1, … , pn) and increasing parameter values t = (t0, t1, … , tn), we can make a polynomial of degree n that passes through pi exactly at parameter value ti so f(ti) = pi p1 p2 p5 p4 p0 p3 the brown curve has t1’ > t1 and t4’ < t4

  12. Polynomials for interpolation • Method • Set up constraint matrix as before • Invert to get basis matrix, giving the n+1 basis functions bi(t) and the polynomial f(t) : • Alternative method (Lagrange form)

  13. Why not use polynomials to interpolate 5 or more points • Polynomials of higher degree have • extra wiggles • overshoots • non-locality: moving the point pn changes the curve even near p0; also when we add a point at the end

  14. Why not use polynomials to interpolate 5 or more points • This gets worse with higher degree (more points)

  15. Blending again • A piecewise-linear curve (polygonal line) can also be defined using blending functions 1 0 u 0.5 0.5  u  1 p1 p0 p2 0 1 u 0.5

  16. Piecewise cubic polynomials • Allows position and derivative at each end • Allows C2 continuity • Are in a sense the most smooth curve: minimum curvature over its length (curvature: second derivative) curvature low curvature 0 curvature high

  17. Cubic polynomials • f(u) = a0 + a1u + a2u2 + a3u3 in canonical form • Four control points (points or derivatives on curve) needed • For piecewise cubic curves: n pieces require 4n control points, but C0 continuity already fixes n – 1 of them

  18. Cubic polynomials • The ideal properties: • Each piece is cubic • The curve interpolates the control points • The curve has local control • The curve has C2 continuity • We can have any three but not all four properties: • Natural cubics do not have local control • Cubic B-splines do not interpolate the control points • Cardinal splines are not C2

  19. Natural cubics • The first piece specifies start and end positions, and the first and second derivative at the start • For each other piece, the position, first and second derivative match with the piece before it only the endpoint can be specified freely • A curve with n pieces has n+3 control “points” in total (n+1 points and 2 derivative specifications) p1 p2 p0 p3

  20. Natural cubics • We get (with f(u) = a0 + u a1 + u2a2+ u3 a3):p0 = f (0) = a0 + 0 a1 + 02a2 + 03a3p1 = f’(0) = 1 a1 + 20 a2 + 302a3p2 = f’’(0) = 2 a2 + 60 a3p3 = f (1) = a0 + 1 a1 + 12a2 + 13a3 constraint matrix

  21. Natural cubics • When you modify your natural cubic, for instance by changing the derivative at the start of the first piece, then the whole curve changes not local

  22. Hermite cubics • Specifies positions of start and end, and the derivatives at these points • C1 continuous since the start position of a piece must be the same as the end position of the previous piece, and the same is true for the derivatives • A curve with n pieces has 2n+2 control “points” in total p1 p2 p3 p0

  23. Hermite cubics • Local control: changing the position or derivative of any point influences only the piece before and the piece after that point • See slides 34-35 of Curves I lecture

  24. Cardinal cubics • Specifies positions only; the derivatives at each point are determined by the points before and after it • C1 continuous • A curve with n pieces has n+3 control points in total p1 p2 p3 p0 p1p3 p0p2

  25. Cardinal cubics • A tension parameter t [0,1) determines the “strength” of bending • Each derivative vector pi-1pi+1 is scaled by (1 – t)/2 p1 p1 p2 p2 p0 p0 p3 p3 t = 0.5 t = 0 (Catmull-Rom splines)

  26. Cardinal cubics ??? scaling factor related,not the tension t

  27. p1 p2 p0 p3 Cardinal cubics • We can set up the constraints:f(0) = p1f(1) = p2f’(0) = ½ (1 – t) (p2 – p0)f’(1) = ½ (1 – t) (p3 – p1) • Rewrite to get expressions for p0, p1, p2 and p3 • The first and last control points are not interpolated; no derivative would be specified • Therefore, n pieces require n+3 points

  28. Summary • Piecewise cubic curves are popular for modeling • We want C2 continuity, locality, and interpolation; we can get only two of these with cubics • Natural cubics do not have locality • Hermitecubics are only C1 continuous • Cardinal cubics are only C1 continuous • The splines that follow next (Bezier and B-spline) will not interpolate but approximate the control points

  29. Questions • Assume piecewise linear interpolation by blending functions, where the curve passes through points p0, p1, p2, p3,and p4 at u = 0, 0.25, 0.5, 0.75, and 1. Define the five blending functions bi(u) so that • Assume that someone defines quadratic blending functions as on slides 5-9, except that b2(u) = u2. Does the resulting curve pass through its defining points. Is the resulting curve translation-invariant?

More Related