1 / 37

Splines I – Curves and Properties

Splines I – Curves and Properties. based on: Michael Gleicher Curves , chapter 15 in Fundamentals of Computer Graphics, 3 rd ed. (Shirley & Marschner ) Slides by Marc van Kreveld. What is a curve?. Intuitively: what you can draw with a pen without lifting it up

claire
Télécharger la présentation

Splines I – Curves and Properties

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

  2. What is a curve? • Intuitively: what you can draw with a pen without lifting it up • Mathematically: image of a continuous mapping of an interval into the plane (or higher-d space)f : [0,1] R2 [ ]

  3. Types of curves • Normal (two endpoints) • Closed loops (no endpoints) • Infinite curves (no endpoints)

  4. More curves • Curves may self-intersect, have sharp corners, trace back on themselves, … • Well-known curves: line segment, line, circle, ellipse, square (boundary), parabola, circular arc, … • General curves are called free-form curves

  5. How to specify a curve (3 ways) • Implicit curve • Parametric curve • Procedurally defined curve

  6. Implicit curves • Given by a function in 2 variables (for curves in the plane) and an outcome value of that function • Circle with radius 2 centered at origin: x2 + y2 = 4the function is f(x,y)= x2 + y2 • Some weird curve: log x – x2 + y3 = 0(if this equation yields a connected set???) • We can assume the given value is 0 • Not every function+value gives a connected set, implying that it cannot be the image of a continuous mapping

  7. Parametric curves • Use a parameter, e.g. t, and use two functionsf(t) and g(t) to describe corresponding x and y coordinates • f(t) = cost for t in [0, 2) ; this is a circleg(t) = sin t • f(t) = t2g(t) = t • f(t) = t4g(t) = t2 • f(t) = t6g(t) = t3

  8. Parametric curves • Representations are not unique • The functions f and g can be written together as a vector-valued function f, we then write (x, y) = f(t) as a shorthand for (x, y) = (f(t), g(t))

  9. Procedural curves • Defined by a process or a grammar, e.g. Koch snowflake (a fractal curve)

  10. Parametric curves • Most common in graphics • Easy to work with (we can draw by evaluating at the parameter)

  11. About the parameterization • The value of the parameter tells you where you are on the curve • The parameter determines “speed” along the curve t=1 t=1 t=1 (0,1) t=½ t=½ t=½ (0,0) (1,0) t=0 t=0 t=0 f(t) = (t, t) f(t) = (t 2, t 2) f(t) = (t 1/2, t 1/2)

  12. About the parameterization • Speed is the derivative (magnitude): | df(t)/dt| t=1 t=1 t=1 (0,1) t=½ t=½ t=½ (0,0) (1,0) t=0 t=0 t=0 f(t) = (t, t) f(t) = (t 2, t 2) f(t) = (t 1/2, t 1/2) speed is 2 everywhere speed increases from 0 to 2 2 speed decreases from  to ½ 2

  13. Arc-length parameterizations • Informally, constant-speed parameterizations • Formally, when • s is used as parameter when it is an arc-length parameterization f(t) = (t, t)

  14. Arc-length parameterizations • Informally, constant-speed parameterizations • Formally, when • s is used as parameter when it is an arc-length parameterization f(t) = (t 2, t 2)

  15. Tangent vector along a curve • Has a direction and magnitude; the magnitude is speed • f(s) = sin s s [0, /2] • g(s) = coss • f(t) = t t[0,1] • g(t) = ((1 –t)2) The direction of tangent depends purely on the position on the curve, whereas the magnitude depends on the parameterization as well

  16. Length of a parameterized curve • You get the length of a curve by integrating over the magnitude of the tangent vector of the curve • The arc length from parameter value a to b, so the arc length between f(a) and f(b), is (x,y) = f(a) (x,y) = f(b)

  17. Piecewise curves • Defined by a sequence of functions • Should line up head-to-tail to get a continuous overall mapping f3 f2 f1 f4 A piecewise curve is a curve by definition; its description just happens to be done using pieces

  18. Piecewise curves • Example • f1(t) = (t, 0) for t [0,1) • f2(t) = (t, t – 1) for t [1,3) • f3(t) = (t2 – 2t, t– 1) for t [3,4]

  19. Piecewise curves • Pieces must connect  continuous curve • Tangent vector at both sides is the same  differential curve

  20. Types of continuity • C0 is the name/notation for normal continuity • Parametric continuity C1: The tangent vectors are the same “just before and just after every point on the curve”, in particular for breakpoints • Geometric continuity G1: The tangent vector directions are the same just before and just afterParametric continuity depends on the parameterization, while geometric continuity depends only on the shape

  21. Types of continuity • You cannot “see” parametric continuity, you need the parameterization • Parametric continuity implies geometric continuity • Re-parameterization may make a geometrically continuous curve parametrically continuous • Cn and Gn means that all derivatives up to (and including) the n-th are continuousPractice: C1 / G1continuous curves look good, C2 / G2continuous curves look slightly better, more is not needed

  22. Polynomial pieces • Both functions used for the f are polynomials in the parameter • Simplest example: piecewise linear (polygonal) curve, consisting of straight line segments; only C0 • Each piece can be expressed using linear interpolation between two points: f(u) = (1 – u) p0 + up1 • Also : f(u) = a0 + ua1(where a0 = p0and a1 = p1 - p0) p1 u is used as parameter notation when it ranges over the unit interval [0,1] p0

  23. Polynomial pieces • Higher-degree polynomials can be written in canonical form: f(u) = a0 + ua1 + u2a2 (quadratic), or f(u) = a0 + ua1 + u2a2 + … + unan (n-th degree)In vector/matrix notation: these have an x- and a y-coordinate

  24. Quadratic pieces, quadrics • The (vector) coefficients a0 , a1 and a2 of the canonical form are not convenient for making curves • It is more natural to describe quadrics using 3 points, one for f(0), one for f(0.5), and one for f(1)p0 = f(0) = a0 + 0 a1 + 02a2p1 = f(0.5) = a0 + 0.5 a1 + 0.52a2p2 = f(1) = a0 + 1 a1 + 12a2With linear algebra, we can convert a0 , a1 and a2into p0 , p1 and p2 and vice versa

  25. Quadrics p1 p2 p0 p2 p0 p1

  26. Quadrics • p0 = f(0) = a0 + 0 a1 + 02a2p1 = f(0.5) = a0 + 0.5 a1 + 0.52a2p2 = f(1) = a0 + 1 a1 + 12a2 constraint matrix

  27. Quadrics • p0 = f(0) = a0 + 0 a1 + 02a2p1 = f(0.5) = a0 + 0.5 a1 + 0.52a2p2 = f(1) = a0 + 1 a1 + 12a2 base matrix If you have the three points p0 , p1 and p2 , you can get the coefficients of the polynomial in canonical form

  28. Quadrics • Example 1: Given the points p0 = (0,1), p1 = (2,0) and p2 = (4,4), compute the coefficients of the polynomial in canonical form for which f(0) = p0, f(0.5) = p1, and f(1) = p2 • Solution: simply apply the base matrix B to ( p0p1p2 )T

  29. Quadrics • Example 2: Given the points p0 = (0,1), p1 = (2,0) and p2 = (4,4), compute the coefficients of the polynomial in canonical form for which f(0) = p0, f(0.3) = p1, and f(1) = p2 • Solution: determine the base matrix B for this case and apply it to ( p0p1p2 )T

  30. Quadrics • p0 = f(0) = a0 + 0 a1 + 02a2p1 = f(0.3) = a0 + 0.3 a1 + 0.32a2p2 = f(1) = a0 + 1 a1 + 12a2 • Now compute B = C– 1 and apply it to ( p0p1p2 )T

  31. Quadrics • We can specify the quadric using points and derivatives too • two points and one derivate at a point • one point, first derivative at a point and second derivative at a point p0 p1

  32. Quadrics • f(u) = a0 + a1u + a2u2 • f’(u) = a1 + 2 a2u • f’’(u) = 2 a2 • By specifying anything likep0 = f(0) , p1 = f’(0.6) , p2 = f’’(0.7)we can determine a (and therefore the quadric in canonical form) by setting up the constraint matrix, doing matrix inversion, and applying it to ( p0p1p2 )T

  33. Quadrics • f(u) = a0 + a1u + a2u2 • f’(u) = a1 + 2 a2u • f’’(u) = 2 a2 • For example:p0 = f(0.1) = a0 + 0.1 a1 + 0.12a2p1 = f’(0.6) = a1 + 2  0.6 a2p2 = f’’(0.7) = 2 a2 Note: p1 and p2 are not points, but specifications of the first and second derivatives

  34. Cubics • Cubics are the most popular polynomial pieces • They are determined by 4 coefficients so we can for instance specify the two endpoints and the two first derivatives at these endpoints • This is important for building splines • f(u) = a0 + a1u + a2u2 + a3u3 p1 p2 p3 p0

  35. Cubics • p0 = f(0) = a0 + 0 a1 + 02a2 + 03a3p1 = f’(0) = a1 + 0 a2 + 3  02a3p2 = f(1) = a0 + 1 a1 + 12a2 + 13a3p3 = f’(1) = a1 + 1 a2 + 3  12a3This is the so-called Hermite form p1 p2 p3 p0

  36. Cubics • For example: p0 = (0,0), p1 = (0,2), p2 = (3,0), p3 = (2,0) point tangent vector point tangent vector p1 = (0,2) p3 = (2,0) p0 = (0,0) p2 = (3,0)

  37. Summary • There are three main ways to specify curves, parametric, implicit, and procedural • There are different degrees of continuity of curves, important when designing piecewise defined curves • We can build (parametric) linear curves from two specifications, quadric curves from 3 specifications and cubic curves from 4 specifications (through point, tangent at point, …) • The constraint matrix and base matrix allow us to convert specifications into canonical form and v.v.

More Related