Curves - PowerPoint PPT Presentation

1 / 48
About This Presentation
Title:

Curves

Description:

But curves based on physical artefacts cannot be replicated well, since there is ... Today, curves are easy to manipulate on a computer and are used for CAD, ... – PowerPoint PPT presentation

Number of Views:79
Avg rating:3.0/5.0
Slides: 49
Provided by: CLT64
Category:
Tags: curves

less

Transcript and Presenter's Notes

Title: Curves


1
Curves
  • Chiew-Lan Tai

2
Reading
  • Required
  • Hearn Baker, 8-8 8-10, 8-12
  • Foley, 11.2

3
Curves Before Computers
  • The loftsmans or carpenters spline
  • long, narrow strip of wood or metal
  • shaped by lead weights called ducks
  • Usually gives curves with second-order continuity
  • Used for designing cars, ships, airplanes etc.
  • But curves based on physical artefacts cannot be
    replicated well, since there is no exact
    definition of what the curve is.
  • Around 1960, a lot of industrial designers were
    working on this problem.
  • Today, curves are easy to manipulate on a
    computer and are used for CAD, art, animation,

4
Motivation for curves
  • In graphics, what do we use curves for?
  • creating models
  • Paths of movement, animation

5
Curve Representations
  • Explicit y f(x)
  • what if the curve is not a function, e.g. a
    circle?
  • Implicit f(x,y,z) 0
  • x2 y2 - R 0
  • Parametric (x(u), y(u))
  • easier to work with
  • E.g. circle
  • x(u) cos 2?u
  • y(u) sin 2?u 0? u?1

6
Parametric Polynomial Curves
  • Well use polynomial parametric curves, where the
    functions are all polynomials in the parameter.
  • Advantages
  • easy (and efficient) to compute
  • infinitely differentiable
  • Well also assume that u varies from 0 to 1

7
deCasteljaus algorithm
8
(No Transcript)
9
Finding Q(u), cont
  • In general
  • where n choose i is
  • This defines a class of curves called Bezier
    curves
  • What is the relationship between the number of
    control points and the degree of the polynomials?

10
Bernstein polynomials
  • The coefficients of the control points are a set
    of functions called the Bernstein polynomials.
  • For degree 3, we have

11
Useful properties
  • Bernstein polynomials has some useful properties
    in 0,1
  • each Bernstein coefficient is positive
  • sum of all four coefficients is always exactly 1
    (a.k.a. , a partition of unity)
  • These properties together imply that the curve
    lies within the convex hull of its control
    points. (convex hull is the smallest convex
    polygon that contains the control points)

12
Displaying Bezier Curves
  • Recall that most graphics hardware can only
    display lines and polygons.
  • How can we display Bezier curves?
  • It would be nice to have an adaptive algorithm
    that takes flatness into account.
  • DisplayBezier (vo,v1,v2,v3)
  • if (FlatEnough(v0,v1,v2,v3))
  • Line(v0,v3)
  • else
  • do something smart

13
Subdivide and Conquer
14
Testing for Flatness
  • Compare the total length of control polygon to
    the length connecting the endpoints

15
More Complex Curves
  • Suppose we want to draw a more complex curve.
  • We connect together individual curve segments
    that are cubic Bezier to form a longer curve,
    called splines.
  • Why cubic?
  • Smallest degree curves that can represent curves
    in 3D space
  • There are three properties that wed like to have
    in our constructed splines
  • Local control
  • Interpolation
  • continuity

16
Local Control
  • One problem with Bezier curves is that every
    control point affects every point on the curve
    (except the endpoints)
  • Moving a single control point affects the whole
    curve!
  • Wed like our spline to have local control, that
    is, each control point affects a certain
    well-defined neighborhood around that point.

17
Interpolation
  • Bezier curves are approximating. The curve does
    not (necessarily) pass through all the control
    points. Each point pulls the curve toward it, but
    other points are pulling as well.
  • Wed like to have a spline that is
  • interpolating, that is, it always
  • passes through every control point.

18
Continuity
  • We want our curve to have continuity. There
    shouldnt be an abrupt change when we move from
    one segment to the next.

19
Ensuring Continuity
  • Lets look at continuity first.
  • Since the functions defining a Bezier curve are
    polynomials, all their derivatives exist and are
    continuous on the interior of the curve.
  • Therefore, we only need to worry about the
    continuity at the endpoints of each curve segment
    (i.e., the joints).

20
Ensuring C0 continuity
  • First cubic Bezier segment control points
    (V0,V1,V2,V3)
  • Second cubic Bezier segment control points
    (W0,W1,W2,W3)
  • Joint is C0 continuous.
  • What constraint does this place on W0,W1,W2,W3 ?

21
Ensuring C1 continuity
  • First cubic Bezier segment control points
    (V0,V1,V2,V3)
  • Second cubic Bezier segment control points
    (W0,W1,W2,W3)
  • Joint is C1 continuous.
  • What constraint(s) does this place on
    (W0,W1,W2,W3)?

(refer next page)
22
1st derivatives at the endpoints
23
2nd derivatives at the endpoints
  • Finally, we will want to develop C2 splines. To
    do that, we will need second derivatives of
    Bezier curves

24
Ensuring C2 continuity
  • First cubic Bezier segment control points
    (V0,V1,V2,V3)
  • Second cubic Bezier segment control points
    (W0,W1,W2,W3)
  • Joint is C2 continuous.
  • What constraint(s) does this place on
    (W0,W1,W2,W3)? (next page)

25
Ensuring C2 Continuity
  • Suppose we want to join two cubic Bezier curves
    (V0,V1,V2,V3) and (W0,W1,W2,W3) so that there is
    C2 continuity at the joint.

26
A-frames and Continuity
  • Lets try to get some geometric intuition about
    what this last continuity equation means.

W
V
V
V
W
V
W
W
27
Building a complex spline
  • Instead of specifying the Bezier control points
    themselves, lets specify the corners of the
    A-frame in order to build a C2 continuous spline.
  • These are called B-splines. The Bi points are
    called de Boor points.

28
Constructing B-splines
  • Here is the completed B-spline
  • What are the Bezier control (V) points, in terms
    of the de Boor points (B)?

2/3
1/3
1/3
2/3
2/3
1/3
1/2
1/2
2/3
1/3
1/6
4/6
1/6
1/6
4/6
1/6
29
Constructing B-splines
  • The construction of Bezier points from de Boor
    points can be expressed as

30
B-spline Properties
  • C2 continuity
  • Approximating
  • Does not interpolate de Boor points
  • Locality
  • For cubics, each segment are determined by 4 de
    Boor points.
  • Each de Boor point determines 4 segments.
  • Convex hull
  • The curve lies inside the convex hull of de Boor
    points

31
Endpoints of B-splines
  • We can see that B-splines dont interpolate the
    de Boor points.
  • It would be nice if we could at least interpolate
    the endpoints
  • There is a trick to make the spline begin and end
    at control points, by repeating them
    (multiplicity 3 for cubics)

32
Closing the loop
  • What if we want a closed curve, i.e., a loop?
  • With B-spline curves, this is easy wrap around
    the points

B7
B6
B5
33
Displaying B-splines
  • Drawing B-splines is very simple
  • DisplayBSpline (B0,B1,,Bn)
  • for i 0 to n-3
  • Convert Bi,,Bi3 into Bezier control points V0,
    , V3
  • DisplayBezier(V0,V1,V2,V3)
  • endfor

34
Conversion between different representations
  • Bezier, Bspline are different representations of
    the same parametric polynomial curves
  • They have different design control properties
  • For example, all cubic curves can be written as

35
Compact Representation
  • Place all coefficients into a matrix

36
Matrix representation
  • C can be written as a product of a basis matrix M
    and a geometry vector G.

37
Bezier cubic curves
MBezier
G
38
B-splines
  • Recall the Bspline to Bezier transformation can
    be expressed as
  • Bezier representation is
  • Substituting (1) into (2), we obtain Bspline
    representation

(1)
(2)
B0
B1
B2
B3
39
Summary
  • What to take home from the lectures on curves
  • The meaning of all the bold face terms
  • Definition and properties of Bezier curves
  • How to display Bézier curves with line segments.
  • Meanings of Ck continuities.
  • Conditions for continuity of cubic splines.
  • Construction of Bezier splines
  • Definition, construction and properties of
    B-splines
  • Matrix representation of curves
  • Conversion between different representations

40
C2 Interpolating Splines
  • Interpolation is a really handy property to have.
  • How can we keep the C2 continuity we get with
    B-splines but get the interpolation property too?
  • Idea behind C2 interpolating splines Suppose we
    want cubic Beziers connecting our data points C0,
    C1, C2, Cm, we can set up C2 continuity
    constraints and solve for the first derivative
    (tangent vector) Di at each Ci.
  • Once we find Di, we can compute the Bezier
    control points from Di (next slide).

Points Cis are known Vectors Dis are unknown
41
Bezier curves from derivatives Ds
  • If we know the first derivatives Di, we can
    compute the Bezier control points

We know
Therefore
42
Finding the Derivatives Ds
  • Set the C2 continuity condition and solve for the
    unknown derivatives Ds.

We know
Equality of 2nd derivative
gt
unknowns
knowns
43
Finding the Derivatives Ds
  • Heres what weve got so far
  • How many equations are there?
  • How many unknowns are we solving for?

m - 1
m 1
44
Not quite done yet!
  • We have two additional degrees of freedom, which
    we can nail down by imposing 2 more conditions on
    the curve.
  • There are various ways to do this. Well use a
    variant called natural C2 interpolating splines,
    which requires that the second derivative to be
    zero at the two endpoints.
  • This condition gives us the two additional
    equations we need. At the endpoint C0, it is

45
Solving for the Derivatives
  • Lets collect our m1 equations into a single
    linear system
  • Its easier to solve than it looks.
  • We can use forward elimination to zero out
    everything below the diagonal, then back
    substitution to compute each D value.

46
Forward Elimination
  • First, we eliminate the elements below the
    diagonal.

47
Back Substitution
  • The resulting matrix is upper triangular
  • We can now solve for the unknowns by back
    substitution

48
C2 Interpolating Spline
  • Once weve solved for the real Ds, we can
    compute Bezier control points and draw the final
    spline
  • Have we lost anything? The user cannot control
    the tangent directions.
Write a Comment
User Comments (0)
About PowerShow.com