+ All Categories
Home > Documents > Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their...

Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their...

Date post: 10-Nov-2018
Category:
Upload: lamkhanh
View: 222 times
Download: 0 times
Share this document with a friend
48
Parametric Curves CSE 457
Transcript
Page 1: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

Parametric Curves

CSE 457

Page 2: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

2

Reading

Required:

w  Angel 10.1-10.3, 10.5.2, 10.6-10.7, 10.9

Optional

w  Bartels, Beatty, and Barsky. An Introduction to Splines for use in Computer Graphics and Geometric Modeling, 1987.

w  Farin. Curves and Surfaces for CAGD: A Practical Guide, 4th ed., 1997.

Page 3: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

3

Curves before computers

The “loftsman’s spline”:

w  long, narrow strip of wood or metal w  shaped by lead weights called “ducks” w  gives curves with second-order continuity,

usually

Used for designing cars, ships, airplanes, etc.

But curves based on physical artifacts can’t be replicated well, since there’s 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, …

Page 4: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

4

Mathematical curve representation

w  Explicit y=f(x) •  what if the curve isn’t a function, e.g., a circle?

w  Implicit g(x,y) = 0

w  Parametric Q(u) = (x(u),y(u))

•  For the circle: x(u) = cos 2πu y(u) = sin 2πu

Page 5: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

5

Parametric polynomial curves

We’ll use parametric curves, Q(u)=(x(u),y(u)), where the functions are all polynomials in the parameter.

Advantages:

w  easy (and efficient) to compute w  infinitely differentiable (all derivatives above

the nth derivative are zero)

We’ll also assume that u varies from 0 to 1.

Note that we’ll focus on 2D curves, but the generalization to 3D curves is completely straightforward.

=

=

=

=

n

k

kk

n

k

kk

ubuy

uaux

0

0

)(

)(

Page 6: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

6

Recursive interpolation:

What if u=0?

What if u=1?

de Casteljau’s algorithm

Page 7: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

7

Recursive notation:

What is the equation for ?

de Casteljau’s algorithm, cont’d

10V

Page 8: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

8

Finding Q(u)

Let’s solve for Q(u):

10 0 1

11 1 2

12 2 3

2 1 10 0 1

2 1 11 1 2

2 20 1

1 1 1 10 1 1 2

0 1 1 2

3 20 1

(1- )

(1- )

(1- )

(1- )

(1- )

( ) (1- )

(1- )[(1- ) ] [(1- ) ](1- )[(1- ){(1- ) } {(1- ) }] ...

(1- ) 3 (1- )

V u V uV

V u V uV

V u V uV

V u V uV

V u V uV

Q u u V uV

u u V uV u u V uVu u u V uV u u V uV

u V u u V

= +

= +

= +

= +

= +

= +

= + + +

= + + + +

= + 2 32 33 (1- )u u V u V+ +

Page 9: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

9

Finding Q(u) (cont’d)

In general,

where “n choose i” is:

This defines a class of curves called Bézier curves.

What’s the relationship between the number of control points and the degree of the polynomials?

0

( ) (1 )n

i n ii

i

nQ u u u V

i−

=

⎛ ⎞= −⎜ ⎟

⎝ ⎠∑

!( )! !

n ni n i i

⎛ ⎞=⎜ ⎟⎝ ⎠ −

Page 10: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

10

Bernstein polynomials

We can take the polynomial form:

and re-write it as:

where the bi(u) are the Bernstein polynomials:

We can also expand the equation for Q(u) to remind us that it is composed of polynomials x(u) and y(u):

0

( ) (1 )n

i n ii

i

nQ u u u V

i−

=

⎛ ⎞= −⎜ ⎟

⎝ ⎠∑

=

= = =

=

⎡ ⎤⎢ ⎥⎢ ⎥⎡ ⎤ ⎡ ⎤⎢ ⎥⎢ ⎥ ⎢ ⎥= = = =⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦ ⎣ ⎦⎢ ⎥⎢ ⎥⎣ ⎦

∑ ∑ ∑

0

0 0 0

0

( )( )

( ) ( ) ( ) ( ) ( )1 1

( )

nn

i ii

in n nn n ni i i i i i

i i i

nni

i

x b ux x u

Q u b u V b u y y b u y u

b u

0

( ) ( )n

ni i

i

Q u b u V=

=∑

( ) (1 )n i n ii

nb u u u

i−⎛ ⎞

≡ −⎜ ⎟⎝ ⎠

Page 11: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

11

Bernstein polynomials, cont’d

For degree 3, the Bernstein polynomials are:

Useful properties (for Bernstein polynomials of any degree) on the interval [0,1]:

w  The sum of all four is exactly 1 for any u. (We say the curves form a “partition of unity”).

w  Each polynomial has value between 0 and 1.

These together imply that the curve is generated by convex combinations of the control points and therefore lies within the convex hull of those control points.

The convex hull of a point set is the smallest convex polygon (in 2D) or polyhedron (in 3D) enclosing the points. In 2D, think of a string looped around the outside of the point set and then pulled tightly around the set.

3 30

3 21

3 22

3 33

( ) (1 )

( ) 3 (1 )

( ) 3 (1 )

( )

b u u

b u u u

b u u u

b u u

= −

= −

= −

=

Page 12: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

12

Displaying Bézier curves

How could we draw one of these things?

Page 13: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

13

Curve desiderata

Bézier curves offer a fairly simple way to model parametric curves.

But, let’s consider some general properties we would like curves to have…

Page 14: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

14

Local control

One problem with Béziers is that every control point affects every point on the curve (except the endpoints).

Moving a single control point affects the whole curve!

We’d like to have local control, that is, have each control point affect some well-defined neighborhood around that point.

Page 15: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

15

Interpolation

Bézier 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.

We’d like to have a curve that is interpolating, that is, that always passes through every control point.

Page 16: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

16

Continuity

We want our curve to have continuity: there shouldn’t be any abrupt changes as we move along the curve.

“0th order” continuity would mean that curve doesn’t jump from one place to another.

We can also look at derivatives of the curve to get higher order continuity.

Page 17: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

17

1st and 2nd Derivative Continuity

First order continuity implies continuous first derivative:

Let’s think of u as “time” and Q(u) as the path of a particle through space. What is the meaning of the first derivative, and which way does it point?

Second order continuity means continuous second derivative:

What is the intuitive meaning of this derivative?

=( )

'( ) dQ u

Q udu

=2

2( )

''( ) d Q u

Q udu

Page 18: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

18

Cn (Parametric) Continuity

In general, we define Cn continuity as follows:

Note: these are nested degrees of continuity:

C-1: C0:

C1, C2 : C3, C4, …:

= ≤ ≤( )

( )is continuousiff

( )( ) iscontinuousfor0

n

ii

i

Q u C

d Q uQ u i n

du

Page 19: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

19

Bézier curves à splines

Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local control or interpolate their control points.

It is possible to define points that we want to interpolate, and then solve for the Bézier control points that will do the job.

But, you will need as many control points as interpolated points -> high order polynomials -> wiggly curves. (And you still won’t have local control.)

Instead, we’ll splice together a curve from individual Béziers segments, in particular, cubic Béziers.

We call these curves splines.

The primary concern when splicing cuves together is getting good continuity at the endpoints where they meet…

Page 20: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

20

Local control

http://demonstrations.wolfram.com/InterpolatingASetOfData/

Page 21: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

21

Ensuring C0 continuity

Suppose we have a cubic Bézier defined by (V0,V1,V2,V3), and we want to attach another curve (W0,W1,W2,W3) to it, so that there is C0 continuity at the joint.

What constraint(s) does this place on (W0,W1,W2,W3)?

=0 : (1) (0)V WC Q Q

Page 22: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

22

The C0 Bezier spline

How then could we construct a curve passing through a set of points P1…Pn?

We call this curve a spline. The endpoints of the Bezier segments are called joints. All other Bezier points (i.e., not endpoints) are called inner Bezier points; these points are generally not interpolated.

In the animator project, you will construct such a curve by specifying all the Bezier control points directly.

Page 23: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

23

For degree 3 (cubic) curves, we have already shown that we get:

We can expand the terms in u and rearrange to get:

What then is the first derivative when evaluated at each endpoint, u=0 and u=1?

1st derivatives at the endpoints

= + + +3 2 2 30 1 2 3( ) (1- ) 3 (1- ) 3 (1- )Q u u V u u V u u V u V

= − + − + +

− + + − + +

30 1 2 3

20 1 2 0 1 0

( ) ( 3 3 )

(3 6 3 ) ( 3 3 )

Q u V V V V u

V V V u V V u V

ʹ =

ʹ =

(0)

(1)

Q

Q

Page 24: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

24

Ensuring C1 continuity

Suppose we have a cubic Bézier defined by (V0,V1,V2,V3), and we want to attach another curve (W0,W1,W2,W3) to it, so that there is C1 continuity at the joint.

What constraint(s) does this place on (W0,W1,W2,W3)?

1' '

(1) (0):

(1) (0)V W

V W

Q QC

Q Q⎧ =⎨

=⎩

Page 25: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

25

The C1 Bezier spline

How then could we construct a curve passing through a set of points P0…Pn?

We can specify the Bezier control points directly, or we can devise a scheme for placing them automatically…

Page 26: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

26

Catmull-Rom splines

If we set each derivative to be one half of the vector between the previous and next controls, we get a Catmull-Rom spline.

This leads to:

=

= +

=

=

0 1

1 1 2 0

2 2 3 1

3 2

1616

( - )

- ( - )

V P

V P P P

V P P P

V P

Page 27: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

27

Catmull-Rom to Beziers

We can write the Catmull-Rom to Bezier transformation as:

0 0

1 1

2 2

3 3

0 1 0 01/6 1 1/6 00 1/6 1 1/60 0 1 0

T T

T T

T T

T T

V PV PV PV P

⎡ ⎤ ⎡ ⎤⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥−⎢ ⎥ ⎢ ⎥⎢ ⎥=⎢ ⎥ ⎢ ⎥⎢ ⎥−⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦⎣ ⎦ ⎣ ⎦

Catmull-RomV = M P

Page 28: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

28

Endpoints of Catmull-Rom splines

We can see that Catmull-Rom splines don’t interpolate the first and last control points.

By repeating those control points, we can force interpolation.

Page 29: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

29

We can give more control by exposing the derivative scale factor as a parameter:

The parameter t controls the tension. Catmull-Rom uses t = 1/2. Here’s an example with t =3/2.

Tension control

τ

τ

=

= +

=

=

0 1

1 1 2 0

2 2 3 1

3 2

3

3

( - )

- ( - )

V PV P P P

V P P P

V P

Page 30: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

30

2nd derivatives at the endpoints

Finally, we’ll want to develop C2 splines. To do this, we’ll need second derivatives of Bezier curves.

Taking the second derivative of Q(u) yields: ʹ́ = +

= +

ʹ́ = +

= +

0 1 2

1 0 1 2

1 2 3

2 3 2 1

(0) 6( - 2 )-6[( - ) ( - )]

(1) 6( - 2 )-6[( - ) ( - )]

Q V V VV V V V

Q V V VV V V V

Page 31: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

31

Ensuring C2 continuity

Suppose we have a cubic Bézier defined by (V0,V1,V2,V3), and we want to attach another curve (W0,W1,W2,W3) to it, so that there is C2 continuity at the joint.

What constraint(s) does this place on (W0,W1,W2,W3)?

2 ' '

'' ''

(1) (0): (1) (0)

(1) (0)

V W

V W

V W

Q QC Q Q

Q Q

⎧ =⎪

=⎨⎪ =⎩

Page 32: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

32

Building a complex spline

Instead of specifying the Bézier control points themselves, let’s specify the corners of the A-frames in order to build a C2 continuous spline.

These are called B-splines. The starting set of points are called de Boor points.

Page 33: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

33

B-splines

Here is the completed B-spline.

What are the Bézier control points, in terms of the de Boor points?

0 0 1

1 2

0 1 2

1 1 2

2 1 2

3 1 2 3

____[____ ____ ]____[____ ____ ]____ ____ ________ ________ ________ ____ ____

V B BB B

B B BV B BV B BV B B B

= +

+ +

= + +

= +

= +

= + +

Page 34: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

34

B-splines to Beziers

We can write the B-spline to Bezier transformation as:

0 0

1 1

2 2

3 3

1/6 2/3 1/6 00 2/3 1/3 00 1/3 2/3 00 1/6 2/3 1/6

T T

T T

T T

T T

V BV BV BV B

⎡ ⎤ ⎡ ⎤⎡ ⎤⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥=⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎢ ⎥⎢ ⎥ ⎢ ⎥⎣ ⎦⎣ ⎦ ⎣ ⎦

B-splineV = M B

Page 35: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

35

Endpoints of B-splines

As with Catmull-Rom splines, the first and last control points of B-splines are generally not interpolated.

Again, we can force interpolation by repeating the endpoints…twice.

Page 36: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

36

In the animator project, you will draw a curve on the screen:

You will actually treat this curve as:

Where θ is a variable you want to animate. We can think of the result as a function:

In general, you have to apply some constraints to make sure that θ(t) actually is a function.

Curves in the animator project

( )=( ) ( ), ( )u x u y uQ

θ =

=

( ) ( )( ) ( )u y u

t u x u

θ( )t

Page 37: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

37

What if we want a closed curve, i.e., a loop?

With Catmull-Rom and B-spline curves, this is easy:

Closing the loop

Page 38: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

38

Drawing Bézier curves, revisited Let’s return to the question of how to draw Bezier curves, the building block for splines. Consider a set of Bézier control points are arranged as follows:

How many line segments do you really need to draw?

It would be nice if we had an adaptive algorithm, that would take into account flatness.

DisplayBezier( V0, V1, V2, V3 )

begin if ( FlatEnough( V0, V1, V2, V3 ) ) Line( V0, V3 ); else something; end;

Page 39: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

39

Subdivide and conquer

DisplayBezier( V0, V1, V2, V3 )

begin if ( FlatEnough( V0, V1, V2, V3 ) ) Line( V0, V3 ); else Subdivide(V[]) ⇒ L[], R[] DisplayBezier( L0, L1, L2, L3 ); DisplayBezier( R0, R1, R2, R3 ); end;

Page 40: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

40

Testing for flatness

Compare total length of control polygon to length of line connecting endpoints:

0 1 1 2 2 3

0 3

1V V V V V V

V Vε

− + − + −< +

Page 41: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

41

Reparameterization

We have so far been considering parametric continuity, derivatives w.r.t. the parameter u.

This form of continuity makes sense particularly if we really are describing a particle moving over time and want its motion (e.g., velocity and acceleration) to be smooth.

But, what if we’re thinking only in terms of the shape of the curve? Is the parameterization actually intrinsic to the shape, i.e., is it the case that a shape has only one parameterization?

Page 42: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

42

Arc length parameterization

We can reparameterize a curve so that equal steps in parameter space (we’ll call this new parameter “s”) map to equal distances along the curve:

We call this an arc length parameterization. We can re-write the equal step requirement as:

Looking at very small steps, we find:

[ ]⇒Δ = − =2 1 1 2( ) ( ), ( )Q s s s s arclength Q s Q s

[ ]=

−1 2

2 1

( ), ( )1

arclength Q s Q ss s

[ ]→

= =−2 1

1 2

2 1

( ), ( ) ( )lim 1s s

arclength Q s Q s dQ ss s ds

Page 43: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

43

Gn (Geometric) Continuity

Now, we define geometric Gn continuity as follows:

Where Q(s) is parameterized by arc length.

The first derivative still points along the tangent, but its length is always 1.

Gn continuity is usually a weaker constraint than Cn continuity (e.g., “speed” along the curve does not matter).

( )

( )is continuousiff

( )( ) iscontinuousfor0

n

ii

i

Q s G

d Q sQ s i nds

= ≤ ≤

Page 44: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

44

Gn Continuity (cont’d)

The second derivative now has a specific geometric interpretation. First, the “osculating circle” at a point on a curve can be defined based on the limit behavior of three points moving toward each other:

The second derivative Q’’(s) then has these properties:

where r(s) and c(s) are the radius and center of O(s), respectively, and k(s) is the “curvature” of the curve at s.

1 2 31 2 3, ,

( ) lim ( , , )s s s s

O s O s s s→

=

1( )Q s( )Q s3( )Q s

1 2 3( , , )O s s s

( )O s

2( )Q s

1( ) ( )( )

Q s sr s

κʹ́ = = ʹ́ = −( ) ( ) ( )Q s s Q sc

cr

Page 45: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

45

Rational polynomial curves

Remarkably, parametric polynomial curves cannot represent something as simple as a circle!

BUT, ratios of polynomials can. We can write these in terms of homogeneous coordinates, which we then normalize:

The equations above describe a rational Bézier curve.

It can be represented in terms of control points, but now we add the homogenous dimension. So for a 2D curve, we have control points with three components (lofted up into 3D), where the homogenous component can be something other than 1.

=

=

=

⎡ ⎤⎢ ⎥⎢ ⎥⎢ ⎥

= ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

0

0

0

( )

nk

kk

nk

kk

nk

kk

a u

Q u b u

c u

= =

= =

⎡ ⎤⎢ ⎥⎢ ⎥

= ⎢ ⎥⎢ ⎥⎢ ⎥⎢ ⎥⎣ ⎦

∑ ∑

∑ ∑%

0 0

0 0

( )

n nk k

k kk k

n nk k

k kk k

a u c u

Q ub u c u

1=

÷ ∑0

n

kk

k

c u

Normalize

Page 46: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

46

Rational polynomial curves (cont’d)

What do we get for the following curve?

Q: How does Illustrator represent a circle?

⎡ ⎤⎢ ⎥= −⎢ ⎥⎢ ⎥+⎣ ⎦

2

2

2( ) 1

1

uQ u u

u

Page 47: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

47

NURBS

In general, we can spline together rational Bézier curves, to get things like rational B-splines.

Another thing we can do is vary the range of u so that it is not always [0..1] in each Bézier segment of a spline. E.g, it could be [0..1] in one segment and then [0..2] in the next.

The u-range affects placement of control points. The result is a non-uniform spline.

A very common type of spline is a Non-Uniform Rational B-Spline or NURBS.

(The “B” in B-spline technically stands for “Basis.”)

Page 48: Parametric Curves - courses.cs.washington.edu · Bézier curves have C-infinity continuity on their interiors, but we saw that they do not exhibit local ... QVVV VV VV QVVV VV VV.

48

Summary

What to take home from this lecture:

w  Geometric and algebraic definitions of Bézier curves.

w  Basic properties of Bézier curves. w  How to display Bézier curves with line

segments. w  Meanings of Ck continuities. w  Geometric conditions for continuity of cubic

splines. w  Properties of B-splines and Catmull-Rom

splines. w  Geometric construction of B-splines and

Catmull-Rom splines. w  How to construct closed loop splines.


Recommended