0% found this document useful (0 votes)
152 views61 pages

Cagd: Design of Curves: Splines & NURBS

The document discusses curves and splines for design applications. It introduces polynomial interpolation and Bézier curves. Splines are defined as piecewise polynomial segments that can be joined to model smooth curves. Higher order continuity (C1, C2) between spline segments is desirable for smoothness. B-splines are splines constructed from piecewise Bézier curve segments, which can achieve up to Cn-1 continuity depending on the degree of the Bézier segments. The document explores properties of Bézier curves and splines like controllability, locality, and smoothness.

Uploaded by

subha_aero
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
152 views61 pages

Cagd: Design of Curves: Splines & NURBS

The document discusses curves and splines for design applications. It introduces polynomial interpolation and Bézier curves. Splines are defined as piecewise polynomial segments that can be joined to model smooth curves. Higher order continuity (C1, C2) between spline segments is desirable for smoothness. B-splines are splines constructed from piecewise Bézier curve segments, which can achieve up to Cn-1 continuity depending on the degree of the Bézier segments. The document explores properties of Bézier curves and splines like controllability, locality, and smoothness.

Uploaded by

subha_aero
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 61

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
Why designing curves?
 Many technological applications
 Design of products (e.g. CAD)
 Calculation of the path for a robot
Design of fonts

 Large sized fonts must be smooth


Interpolating measuring data
Approximating measuring data
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
Polynomial interpolation
 Several conditions (say n+1)
 For example: n+1 Points
n n 1
 Apply to y a n x a n 1 x a1 x a0
 Solve system of linear equations
 Either effective or if you like to, even
efficent

 Result: Polynomial of degree n


 Interpolates points by construction (i.e. the curve
goes through these points)
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
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
Bézier curves
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 b0 , , bn
Bézier – definition
 Via Bernstein polynomials of
degree n
Bni t n 1 t n i t i , i 0, n ,t 0, 1
i
Bni t 0, i 0, n , t 0,1
Bernstein polynomials of degree 4
 Characteristics
 Nonnegative
n

 Sum to union
n
Bi t 1, t
i 0
Bézier – mathematical
 Definition of Bézier curve:
n
n
x t : bi Bi t with t 0,1
i 0

 Bernstein polynomials are like „cross-


faders“ to the points
 They are the weights in a weighted
linear combination
Bézier – derivation
 Derivation of Bernstein polynomial
d n d n n i
B t 1 t ti
dt i dt i
n i ti 1
1 t n i
n i ti 1 t n i 1
product rule
i
n! n!
ti 1
1 t n i
ti 1 t n i 1
i 1 ! n i ! i! n i 1 !
n 1! n 1 !
n ti 1
1 t n i
ti 1 t n i 1
i 1 ! n i ! i! n i 1 !

n Bin 1
1
t Bin 1
t
Bézier – derivation
 Derivation of Bézier
n n n
d d n d n n 1 n 1
x t bi B t i
bi Bi t n b i Bi 1
t Bi t
dt dt i 0 i 0 dt i 0

n n 1
n 1 n 1 n 1 n 1
n bi B i 1
t n bi Bi t with B 1
t 0 Bn t 0
i 1 i 0
n 1 n 1
n 1 n 1
n bi 1 Bi t n b i Bi t Indexshift
i 0 i 0
n 1
n 1
n bi 1
bi Bi t Joined sums
i 0
Bézier – construction
 Repeated linear interpolation
0,5 0,5
P1
0,5 P2

0,5

t = 0,5
P0 P3
Bézier – characteristics
 Good controllability
 Interpolates endpoints (s(0) = b0, s(1) = b1)
 First two points determine the tangent vector at
the start: x 0 n b 1 b0
 Last two points determine the tangent vector at
the end: x 1 n b b
n n 1

 Good locality
 Local changes only have local impact
 Anyway changes are global
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
Splines

Modelling segmental
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
Splines – parametrisation
 Globally parametrised over a sequence
of nodes ui
 Each segment si is locally parametrised
over [ui, ui+1]
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)
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
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
Splines – smoothness

C1-continuous Spline

C0-continuous Spline
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
Splines – smoothness
 An example for G1-continuous curve
that is not C1-continuous
1 2

u0 u1 u2

1 1
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
Splines – smoothness
Linear Interpolation
P2

Why not interpolate the


P4

points linearily? P3
P1
 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
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
Bézier: Tangents

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

bi-1 bi bi+1

s0
s1

B-Spline: Collinearity of bi-1, bi and bi+1


B-Splines – C1-continuity
 But this alone isn‘t sufficient
 Furthermore bi-1, bi and bi+1 must satisfy a
specific ratio
bi bi 1
u1 u0 0
=:
bi 1
bi u2 u 1 1
u0 u1 u2
bi bi 1 1
(for uniform B-Splines)
bi 1
bi 1

 Why this?
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
d d d 1 d u uj
s u t u sj t s j t , with j uj 1 u j,t u ,u u j , uj 1
du du dt j dt j

1 d 1 d
So we have to check s0 1 s1 0
0
dt 1
dt
d
1
bn b n 1 0
bn 1
b n , since s0 1 n bn b n 1
and s 1 0 n bn 1
bn
dt
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
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
B-Splines – C2-continuity
 The point d must fulfill two conditions
bn 1
1 t bn 2 t d 0
at which t
bn 1
1 t d t bn 2 0 1

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
 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
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
Quadratic B-Splines
 Construction of Bézier polygon:
b0 : d 0 b2 n 2
: dn b 2 i 1 : d i , i 0, ,n 3

i i 1 1 1
b2 i : b2 i b2 i b2i b b For uniform B-Splines
i 1 i
1
i 1 i
1
2 2i 1
2 2i 1

0,5 b 3 = d2 b6 = d4
0,5 b2

b4
b1 = d1
Quadratic Bézier segments Control polygon
b5 = d3

Construction of a uniform quadratic C1-continuous B-Spline with n=5


b0 = d0
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
d4= b8

b7

Cubic B-Splines
b9 = d5 d3

b6

 Formulas for uniform case Cubic Bézier segments


(nonuniform version is too ugly ;) b5

1 1
Left end: b0 : d 0 , b1 : d 1 , b2 : d1 d2
2 2
1 1
Right end: b3 : d n , b3 : d n 1 , b3 : dn dn b4
n 2 n 2 1 n 2 2 2 1
2 2
2 1
b3 i 2 : di 1 di b3
3 3
1 2 b0 = d0
b3i 1: di 1 di d2
3 3
1 1 1 b2
b3 i : b b (Remember C -condition)
2 3i 1 2 3i 1
b1 = d1 B-Spline polygon

Construction of a uniform C2-continuous cubic B-Spline


Cubic B-Splines – storage
 A little off-topic aspect: How to store a
B-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
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
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
B-Splines – basis
 Definition of B-Splines via basis splines
N n 1
n n
s u : d i N i u , where N i u are the basis splines
i 0

 Definition of the basis splines


 Global over the whole domain of u
So that N i ui 1
n

 Cn-1-smoothness is assured
 The support is minimal
 That is the range in which it doesn‘t vanish
B-Spline Basis
 Ok but how does this look like?

The basis splines over the full domain of u


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
B-Splines – characteristics
 Lies within convex closure of d7
the control points d6
 Stricter than for Bézier curve: Lies
within the the union of the
convex closures of all segments
d0

d1

Convex closure
d2
A C1-continuous quadratic B-Spline
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
Rational Bézier curves

An even more powerful approach


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
Rational Bézier curves
 Definition of a rational Bézier curve
n
n
w i bi Bi t
i 0
x t : n
n
wi B t
i
i 0

 As before the bi are the control points


 Additionaly every point bi has a weight wi
Rational Bézier curves
 You can think of a rational Bézier curve
of the projection of a nonrational one
from 4D space to the hyper-plane w=1
 The control polyhedron of this is
spanned by the 4D points (bi . wi , wi)
 The bi are the projection of the bi .wi to
the hyperplane w=1
Rational Bézier curves
 Let‘s visualize this for a 2D rational Bézier
curve as a projected Bézier curve in 3D to
plane z=1

z=1 plane

3D Bézier curve

2D rational Bézier curve


Rational Bézier curves
 The weights give a further degree of liberty
to the designer
 Changing the weight differs from moving the
control point

Moving a control point (left) differs heavily from changing its weight (right)
Rational Bézier curves
 Because they are invariant under
projection the projected curve can be
modeled further
 E.g. a car designer may change the
projected car body
 Bézier curves are a subset of the
rational Bézier curves
 Special case: Equal weights
NURBS

Puzzeling with rational curves


NURBS
 Non Uniform Rational B-Splines
 B-Splines with rational Bézier curves
 Since 3D rational Bézier curves can be thought of
as nonrational in 4D, all results of normal B-
Splines apply
 Especially the continuity conditions are exactly
identical, but with 4D control points
 This implies that their construction is
mathematical identical to that of B-Splines (but as
well in 4D)
NURBS
 Note: NURBS can be defined as well as B-
Splines with Basis Splines
N n 1
n
w i bi N ti
i 0
x t : N n 1
n
wi N t
i
i 0
NURBS – characteristics
 All conic sections (a circle for example)
can be modelled exactly

Constructing a 2D-circle with NURBS


NURBS – characteristics
 It inherits all advantages of B-Splines
(excellent locality, ...) while extending
the liberty of modelling
 Therefore today NURBS are standard
for modelling
 The next logical step is to model not
only curves but surfaces
 This will be discussed in the next lecture
Programming is a race between the
programmer and the universe: The
programmer trying to make the programm
more and more foolproof and the universe

The End trying to make greater idiots


– so far the universe won.
-- Unkown source

 Questions?
 Thank you for paying attention

Sources
Farin, G.:
Kurven und Flächen im Computer Aided Geometric Design
H.-J. Bungartz, M. Griebel, C. Zenger:
Einführung in die Computergraphik
Foley, van Dam, Feiner, Hughes:
Computer Graphics: Principles and Practice - Second Edition in C
http://olli.informatik.uni-oldenburg.de/Grafiti3/grafiti/flow10/page1.html
http://www.cs.berkeley.edu/~sequin/CS284/IMGS/
http://escience.anu.edu.au/lecture/cg/Spline/bSplineFunction.en.html

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy