splines ii interpolating curves n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Splines II – Interpolating Curves PowerPoint Presentation
Download Presentation
Splines II – Interpolating Curves

Loading in 2 Seconds...

play fullscreen
1 / 29

Splines II – Interpolating Curves - PowerPoint PPT Presentation


  • 121 Views
  • Uploaded on

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.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Splines II – Interpolating Curves' - keenan


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.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
splines ii interpolating curves

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

polynomial pieces
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

recall basis and constraint matrices
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)

blending functions
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
blending functions1
Blending functions
  • u = [ 1 uu2u3 … un ]
  • b(u) = uB so we obtain for the usual quadric example with three points specified:
blending functions2
Blending functions
  • We can now blend the control points
blending functions3
Blending functions

We see the contributions of each point depending on u

For fixed u, we linearly interpolate the three points

blending functions5
Blending functions
  • Note the sum of the contributions

+

polynomials for interpolation
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

polynomials for interpolation1
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

polynomials for interpolation2
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)
why not use polynomials to interpolate 5 or more points
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
why not use polynomials to interpolate 5 or more points1
Why not use polynomials to interpolate 5 or more points
  • This gets worse with higher degree (more points)
blending again
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

piecewise cubic polynomials
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

cubic polynomials
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
cubic polynomials1
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
natural cubics
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

natural cubics1
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

natural cubics2
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
hermite cubics
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

hermite cubics1
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
cardinal cubics
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

cardinal cubics1
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)

cardinal cubics2
Cardinal cubics

???

scaling factor related,not the tension t

cardinal cubics3

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
summary
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
questions
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?