Top Banner
Bézier Curves CPSC 453 – Fall 2018 Sonny Chan
37

Bézier Curves - pages.cpsc.ucalgary.ca

Mar 14, 2022

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Bézier Curves - pages.cpsc.ucalgary.ca

Bézier Curves

CPSC 453 – Fall 2018Sonny Chan

Page 2: Bézier Curves - pages.cpsc.ucalgary.ca

Today’s Outline

• Quadratic Bézier curves

• de Casteljau formulation

• Bernstein polynomial form

• Bézier splines

• Cubic Bézier curves

• Drawing Bézier curves

Page 3: Bézier Curves - pages.cpsc.ucalgary.ca

How might we represent a

freeform shape? 𝄞

Page 4: Bézier Curves - pages.cpsc.ucalgary.ca

The Goal:

Create a system that provides an accurate, complete, and indisputable definition of

freeform shapes.

Page 5: Bézier Curves - pages.cpsc.ucalgary.ca

Parametric Segment by Linear Interpolation

p(u) = lerp(p0,p1, u)

= (1� u)p0 + up1

p0

p1

Page 6: Bézier Curves - pages.cpsc.ucalgary.ca

Can we use the same machinery for

defining curves?

Page 7: Bézier Curves - pages.cpsc.ucalgary.ca
Page 8: Bézier Curves - pages.cpsc.ucalgary.ca

de Casteljau’s Algorithm (quadratic)

p10 = lerp(p0,p1, u)

p11 = lerp(p1,p2, u)

p(u) = lerp(p10,p

11, u)

p0

p1

p2

Page 9: Bézier Curves - pages.cpsc.ucalgary.ca

Bernstein Polynomials

0 0.25 0.5 0.75 1

0.25

0.5

0.75

1

b0,2(u) = (1� u)2

b1,2(u) = 2u(1� u)

b2,2(u) = u2

Page 10: Bézier Curves - pages.cpsc.ucalgary.ca

Bernstein Form of a Quadratic Bézier

p0

p1

p2

p(u) = (1� u)2p0 + 2u(1� u)p1 + u2p2

= b0,2(u)p0 + b1,2(u)p1 + b2,2(u)p2

=2X

i=0

bi,2(u)pi

Page 11: Bézier Curves - pages.cpsc.ucalgary.ca

Property #1:

endpoint interpolation

Page 12: Bézier Curves - pages.cpsc.ucalgary.ca

Endpoint Interpolation

p0

p1

p2

p(0) = p0

p(1) = p2

Page 13: Bézier Curves - pages.cpsc.ucalgary.ca

Property #2:

endpoint tangents

Page 14: Bézier Curves - pages.cpsc.ucalgary.ca
Page 15: Bézier Curves - pages.cpsc.ucalgary.ca

Endpoint Tangents

p0

p1

p2

p0(0) = 2(p1 � p0)

p0(1) = 2(p2 � p1)

Page 16: Bézier Curves - pages.cpsc.ucalgary.ca

Property #3:

convex hull

Page 17: Bézier Curves - pages.cpsc.ucalgary.ca

Convex Hull

p0

p1

p2

Page 18: Bézier Curves - pages.cpsc.ucalgary.ca

Bézier Splines of the 2nd degree

Page 19: Bézier Curves - pages.cpsc.ucalgary.ca

Splines are just curve segments joined together:

p0

p1

p2 = q0

q1

q2

Page 20: Bézier Curves - pages.cpsc.ucalgary.ca

Is it continuous?

C0 continuity:

p(1) = q(0)

Page 21: Bézier Curves - pages.cpsc.ucalgary.ca

Is it smooth?

Page 22: Bézier Curves - pages.cpsc.ucalgary.ca

Is it smooth?C1 continuity:

p0(1) = q0(0)

Page 23: Bézier Curves - pages.cpsc.ucalgary.ca

Is it smooth?G1 continuity:

p0(1) = sq0(0), s 2 R+

Page 24: Bézier Curves - pages.cpsc.ucalgary.ca

Using a Bézier spline to represent a

freeform shape

Page 25: Bézier Curves - pages.cpsc.ucalgary.ca
Page 26: Bézier Curves - pages.cpsc.ucalgary.ca

Bézier Curves of the 3rd degree

Page 27: Bézier Curves - pages.cpsc.ucalgary.ca
Page 28: Bézier Curves - pages.cpsc.ucalgary.ca

de Casteljau Construction

u = 12

u = 14 u = 3

4

Page 29: Bézier Curves - pages.cpsc.ucalgary.ca

0 0.25 0.5 0.75 1

0.25

0.5

0.75

1

Third Degree Bernstein Polynomials

b0,3(u) = (1� u)3

b1,3(u) = 3u(1� u)2

b2,3(u) = 3u2(1� u)

b3,3(u) = u3

Page 30: Bézier Curves - pages.cpsc.ucalgary.ca

Bernstein form of a Cubic Bézier

p(u) = (1� u)3p0 + 3u(1� u)2p1 + 3u2(1� u)p2 + u3p3

= b0,3(u)p0 + b1,3(u)p1 + b2,3(u)p2 + b3,3(u)p3

=3X

i=0

bi,3(u)pi

p0

p1

p2

p3

Page 31: Bézier Curves - pages.cpsc.ucalgary.ca

Do our properties still apply?

Endpoints

Tangents

Convex Hull

✓✓✓

Page 32: Bézier Curves - pages.cpsc.ucalgary.ca

Property #4:

curve subdivision

Page 33: Bézier Curves - pages.cpsc.ucalgary.ca

Curve Subdivision

Page 34: Bézier Curves - pages.cpsc.ucalgary.ca

Drawing Curves

Or how to approximate them with straight line segments.

Page 35: Bézier Curves - pages.cpsc.ucalgary.ca

Two methods for evaluating your curve

p0 p1 p2 p3

p10 p1

1 p12

p20 p2

1

p(u)

u1� u

p(u) =nX

i=0

bi,n(u)pi

bi,n(u) =

✓ni

◆ui(1� u)n�i

de Casteljau

Bernstein

Which one do you think is more efficient?

Page 36: Bézier Curves - pages.cpsc.ucalgary.ca

How many line segments do you need?

The key question:

Page 37: Bézier Curves - pages.cpsc.ucalgary.ca

Things to Remember

• Bézier curves and splines can provide an accurate, complete, and indisputable definition of freeform shapes

- defined by de Casteljau construction or Bernstein polynomials

- quadratic (3 points), cubic (4 points), or higher order

• Splines are just curve segments joined together

- can have various degrees of parametric/geometric continuity

• Draw splines by approximating them with line segments, just like parametric curves! (same considerations apply)