1 / 61

CAGD: Design of curves

CAGD: Design of curves. Splines & NURBS. Alexander Lauser Ferienakademie Sarntal 2004. Agenda. Motivation Polynomial Interpolation Bézier curves Splines Smoothness B-Splines Rational Bézier curves NURBS. Calculation of the path for a robot. Design of products (e.g. CAD).

lupita
Download Presentation

CAGD: Design of 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. CAGD: Design of curves Splines & NURBS Alexander LauserFerienakademie Sarntal 2004

  2. Agenda • Motivation • Polynomial Interpolation • Bézier curves • Splines • Smoothness • B-Splines • Rational Bézier curves • NURBS

  3. Calculation of the path for a robot • Design of products (e.g. CAD) • Design of fonts • Large sized fonts must be smooth Why designing curves? • Many technological applications • Interpolating measuring data • Approximating measuring data

  4. Criterias for curves • Controllability • Changes must be predictable in effect • Intuitive to use for the designer • Locality • Local changes should stay local • Smoothness • No sharp bends

  5. Several conditions (say n+1) • For example: n+1 Points • Apply to • Solve system of linear equations • Either effective or if you like to, even efficent Polynomial interpolation • Result: Polynomial of degree n • Interpolates points by construction (i.e. the curve goes through these points)

  6. Polynomial interpolation Disadvantages • Very bad locality • Tend to oscillate • Small changes may result in catastrophe • Bad controllability • All you know is, that it interpolates the points • High effort to evaluate curve • Imagine a curve with several million given points

  7. Approximation • Unlike interpolation the points are not necessarily interpolated • Points give a means for controlling of where the curve goes • Often used when creating the design of new (i.e. non-existing) things • No strict shape is given

  8. Bézier curves

  9. Bézier curve • Now we are no longer interested in interpolating all points • The curve only approximates a set of points • Bézier curves are a simple, yet good method • Given: n+1 control points

  10. Bernstein polynomials of degree 4 Bézier – definition • Via Bernstein polynomials of degree n • Characteristics • Nonnegative • Sum to union

  11. Bézier – mathematical • Definition of Bézier curve: • Bernstein polynomials are like „cross-faders“ to the points • They are the weights in a weighted linear combination

  12. Bézier – derivation • Derivation of Bernstein polynomial

  13. Bézier – derivation • Derivation of Bézier

  14. 0,5 0,5 P1 0,5 P2 0,5 P0 P3 Bézier – construction • Repeated linear interpolation t = 0,5

  15. Last two points determine the tangent vector at the end: • First two points determine the tangent vector at the start: Bézier – characteristics • Good locality • Local changes only have local impact • Anyway changes are global • Good controllability • Interpolates endpoints (s(0) = b0, s(1) = b1)

  16. Bézier – characteristics • Lies within the convex closure of the control points • Useful for collision detection • Invariant under affine transformation • You can rotate, translate and scale the control polygon • Complex shape of model implies a great amount of control points • This means the degree of the curve is high • So the evaluation of such a curve is slow

  17. Splines Modelling segmental

  18. Splines • Piecewise polynomial segments • Modelling the curve locally by a segment • The segments are joined to get the global curve • Name derives from shipbuilding • Splines are stripes of metal fixed at several points. They have the same smoothness as cubic B-Splines • Global parameter u and for each segment si a local parameter t

  19. Splines – parametrisation • Globally parametrised over a sequence of nodes ui • Each segment si is locally parametrised over [ui, ui+1]

  20. Splines – parametrisation • Uniform splines • Uniformly distributed sequence over range of global parameter u • Nonuniform splines • Sequence is not uniformly distributed • Segments si „live“ over [ui, ui+1] with local parameter • t = (u – ui) / (ui+1 – ui–1)

  21. Splines – smoothness • What does smoothness mean? • Graphically clear: No sharp bends • Mathematical abstraction: Order of continuous derivability • Only nodes and the corresponding knot-points are relevant • others points are infinitely often derivable

  22. Splines – smoothness • C0-continuity • The segments meet at the nodes • C1-continuity • Curve must be continuously derivable after the global parameter u one time • The „speed“ in respect to global parameter must be the same in the joint both segments • C2-continuity • Curve must be continuously derivable 2 times • The „acceleration“ must be equal in the joint

  23. C0-continuous Spline Splines – smoothness C1-continuous Spline

  24. Splines – smoothness • Geometric smoothness: G1-continuity • In every joint there exists a unique tangent • I.e. tangent vectors need not be equal in magnitude, only direction • Doesn‘t take global parametrisation into account

  25. 1 2 u0 u1 u2 1 1 Splines – smoothness • An example for G1-continuous curve that is notC1-continuous

  26. Splines – smoothness • In general • Cx-continuity  Gx-continuity • But not: Gx-Continuity  Cx-continuity • Special case: Stationary point • All derivations are zero • Then Cx-continuity  Gx-continuity doesn‘t hold

  27. Splines – smoothness

  28. P2 P4 P3 P1 Linear Interpolation • Why not interpolate the points linearily? • It is very controllable • It is very local since it changes only 2 segments • Right. BUT It is not very smooth • It is only C0-continuous

  29. B-Splines • Spline consisting of Bézier curves • Depending on the degree n of the Bézier segments various orders of continuity possible • In general up to Cn–1-continuouity possible

  30. Bézier: Tangents bi+1 bi-1 bi B-Spline: Collinearity of bi-1, bi and bi+1 B-Splines – C1-continuity • C1-continuity at knot bi • Tangent vectors must be equal • Bézier: Tangent vectors in bi • s0 - points from bi-1 to bi • s1 - points from bi to bi+1 • This means bi-1, bi and bi+1 must be collinear s0 s1

  31. u0 u1 u2 B-Splines – C1-continuity • But this alone isn‘t sufficient • Furthermore bi-1, bi and bi+1 must satisfy a specific ratio • Why this?

  32. B-Splines – C1-continuity • Because we are interested in derivability for the global parameter • Collinearity says that the „speed“ has the same direction, but not necessarily magnitude • Mathematical derivation

  33. B-Splines – C1-continuity • Given: Two Bézier curves • How to test C1-continuity • Consider the joint points of the spline and its direct neighbours • When no joint it isn‘t even C0-continuous • Are they collinear? • No, then the spline is not C1-continuous • Ok, they are collinear • Then check the ratio of the distance from the knot point neighbours to the knot point. It must be same ratio as of the corresponding nodes

  34. B-Splines – C2-continuity • C2-continuity at knot bi • Precondition: C1-continuity • Nodes bn-2, bn-1, bn and bn, bn+1, bn+2 must describe a unique global quadratic Bézier curve • So there must exist a (unique) point d, so that bn-2, d, bn+2 describe this curve

  35. u0 u1 u2 B-Splines – C2-continuity • The point d must fulfill two conditions

  36. Check for uniqueness of point d • Extrapolate d- from bn-2 and bn-1 • Extrapolate d+ from bn+2 and bn+1 • d- and d+ must be equal • In Practice specify a tolerance u0 u1 u2 B-Splines • How to test for C2-continuity • First of all test for C1-continuity • If it is not, it cannot be C2-continuous

  37. Quadratic B-Splines • Construction of a C1-continuous quadratic B-Spline • Different approach • Per definition we want a C1-continuous curve • We do not want to test two segments for C1-continuity anymore • Given are n+1 control points d0 ,..., dn spanning the control polygon of the B-Spline • Constructing Bézier control points for a C1-continuous quadratic B-Spline

  38. For uniform B-Splines 0,5 d4 d2 0,5 b2 b4 Quadratic Bézier segments Control polygon d3 d0 d1 Quadratic B-Splines • Construction of Bézier polygon: b3 = b6 = b1 = b5 = Construction of a uniform quadratic C1-continuous B-Spline with n=5 b0 =

  39. Cubic B-Splines • Construction of a C2-continuous cubic B-Spline • As for quadratic B-Splines we construct the Bézier control points bi from the B-Spline polygon spanned by di • Given are n+1 control points d0 ,..., dn again spanning the control polygon of the B-Spline • Constructing Bézier control points for a C2-continuous cubic B-Spline

  40. d4 = b8 b7 b9 = d3 b6 Cubic Bézier segments b5 b4 b3 b0 = b2 d2 b1 = B-Spline polygon d5 d1 d0 Cubic B-Splines • Formulas for uniform case (nonuniform version is too ugly ;) Construction of a uniform C2-continuous cubic B-Spline

  41. Cubic B-Splines – storage • A little off-topic aspect: How to store aB-Spline • For example it could be approximated linearly and these linear segments could be saved • Obviously inefficient • All Bézier control points could be saved • It‘s more efficient but not perfect • So what to save? • Answer: Only the di need to be saved • Curve can be reconstructed as shown before

  42. Cubic B-Splines – storage • The advantages are obvious • No loss of data. The curve can be exactly reconstructed • No problems with rounding errors • Little storage space needed • The storage is distinct when low-level storage information is known • Theoretical interchangability of file format saving B-Splines • Practice is evidently different

  43. B-Splines – basis • What does the „B“ in the name stand for? • It does not stand for „Bézier“ as you may guess, but for „Basis“ • Since there exists a basis representation for the spline in contrary to natural splines • The basis functions are called the minimum support splines

  44. Definition of the basis splines • Global over the whole domain of u • So that • Cn-1-smoothness is assured • The support is minimal • That is the range in which it doesn‘t vanish B-Splines – basis • Definition of B-Splines via basis splines

  45. The basis splines over the full domain of u B-Spline Basis • Ok but how does this look like?

  46. B-Splines – characteristics • Invariant under affine transformations • You can scale, rotate and translate the curve • I.e. the control points and get the same result as doing so with all the points on the curve • Interpolation of end points • Excellent locality • Change of one control points affects at most n+1 segments

  47. d7 d6 d0 d1 Convex closure d2 A C1-continuous quadratic B-Spline B-Splines – characteristics • Lies within convex closure of the control points • Stricter than for Bézier curve: Lies within the the union of the convex closures of all segments

  48. B-Splines – characteristics • Modelling of straight lines possible • Even if all local segments are planar, modelling of true 3D curves is possible • E.g. quadratic B-Splines are planar in each segment but the global curve may be true 3D • The degree of the global curve doesn‘t depend on the number of points • Efficient for modelling curves with many points

  49. Rational Bézier curves An even more powerful approach

  50. Rational Bézier curves • One major disadvantage of Bézier curves are that they are not invariant under projection • This means when perspectively projecting a 3D Bézier curve on the screen the result is no longer a Bézier curve • For CAGD applications 3D curves are often projected to be displayed on 2D screens • When projected, the original nonrational curve results in a rational curve • This leads us to rational Bézier curves • They are invariant under projective transformation

More Related