SlideShare una empresa de Scribd logo
1 de 21
Descargar para leer sin conexión
On-Line Geometric Modeling Notes
DEFINITION OF A B-SPLINE CURVE
Kenneth I. Joy
Visualization and Graphics Research Group
Department of Computer Science
University of California, Davis
Overview
These notes present the direct definition of the B-Spline curve. This definition is given in two ways: first
by an analytical definition using the normalized B-spline blending functions, and then through a geometric
definition.
The B-Spline Curve – Analytical Definition
A B-spline curve P(t), is defined by
P(t) =
n
i=0
PiNi,k(t)
where
• the {Pi : i = 0, 1, ..., n} are the control points,
• k is the order of the polynomial segments of the B-spline curve. Order k means that the curve is made
up of piecewise polynomial segments of degree k − 1,
• the Ni,k(t) are the “normalized B-spline blending functions”. They are described by the order k and
by a non-decreasing sequence of real numbers
{ti : i = 0, ..., n + k} .
normally called the “knot sequence”. The Ni,k functions are described as follows
Ni,1(t) =



1 if u ∈ [ti, ti+1),
0 otherwise.
(1)
and if k > 1,
Ni,k(t) =
t − ti
ti+k−1 − ti
Ni,k−1(t) +
ti+k − t
ti+k − ti+1
Ni+1,k−1(t) (2)
• and t ∈ [tk−1, tn+1).
We note that if, in equation (2), either of the N terms on the right hand side of the equation are zero,
or the subscripts are out of the range of the summation limits, then the associated fraction is not evaluated
and the term becomes zero. This is to avoid a zero-over-zero evaluation problem. We also direct the readers
attention to the “closed-open” interval in the equation (1).
The order k is independent of the number of control points (n + 1). In the B-Spline curve, unlike
the B´ezier Curve, we have the flexibility of using many control points, and restricting the degree of the
polymonial segments.
The B-Spline Curve – Geometric Definition
Given a set of Control Points {P0, P1, ..., Pn}, an order k, and a set of knots {t0, t1, ..., tn+k}, the
B-Spline curve of order k is defined to be
P(t) = P
(k−1)
l (t) if u ∈ [tl, tl+1)
where
P
(j)
i (t) =



(1 − τj
i )P
(j−1)
i−1 (t) + τj
i P
(j−1)
i (t) if j > 0,
Pi if j = 0.
and
τj
i =
t − ti
ti+k−j − ti
2
It is useful to view the geometric construction as the following pyramid
...
Pl−k+1
P
(1)
l−k+2
Pl−k+2 P
(2)
l−k+3
P
(1)
l−k+3 ·
Pl−k+3 ·
Pl−k+4
· P
(k−2)
l−1
· P
(k−1)
l
· P
(k−2)
l
·
Pl−2 P
(2)
l−1
P
(1)
l−1 ·
Pl−1 P
(2)
l
P
(1)
l
Pl
...
Any P in this pyramid is calculated as a convex combination of the two P functions immediately to it’s left.
All contents copyright (c) 1996, 1997, 1998, 1999
Computer Science Department, University of California, Davis
All rights reserved.
3
On-Line Geometric Modeling Notes
THE UNIFORM B-SPLINE BLENDING FUNCTIONS
Kenneth I. Joy
Visualization and Graphics Research Group
Department of Computer Science
University of California, Davis
Overview
The normalized B-spline blending functions are defined recursively by
Ni,1(t) =



1 if u ∈ [ti, ti+1)
0 otherwise
(1)
and if k > 1,
Ni,k(t) =
t − ti
ti+k−1 − ti
Ni,k−1(t) +
ti+k − t
ti+k − ti+1
Ni+1,k−1(t) (2)
where {t0, t1, ..., tn+k} is a non-decreasing sequence of knots, and k is the order of the curve.
These functions are difficult to calculate directly for a general knot sequence. However, if the knot
sequence is uniform, it is quite straightforward to calculate these functions – and they have some suprising
properties.
Calculating the Blending Functions using a Uniform Knot Sequence
Assume that {t0, t1, t2, ..., tn} is a uniform knot sequence, i.e., {0, 1, 2, ..., n}. This will simplify the
calculation of the blending functions, as ti = i.
Blending Functions for k = 1
if k = 1, then by using equation (1), we can write the normalized blending functions as
Ni,1(t) =



1 if u ∈ [i, i + 1)
0 otherwise
(3)
These are shown together in the following figure, where we have plotted N0,1, N1,1, N2,1, and N3,1 respec-
tively, over five of the knots. Note the white circle at the end of the line where the functions value is 1. This
represents the affect of the “open-closed” interval found in equation (1).
2
 ¢¡¤£¥§¦©¨     
   !
 # $ % 
' ( ) 0 1
243653§7©89
@BADCE§F©GH
IBPDQR§S©TU
These functions have support (the region where the curve is nonzero) in an interval, with Ni,1 having support
on [i, i + 1). They are also clearly shifted versions of each other – e.g., Ni+1,1 is just Ni,1 shifted one unit
to the right. In fact, we can write Ni,1(t) = N0,1(t − i)
Blending Functions for k = 2
3
If k = 2 then N0,2 can be written as a weighted sum of N0,1 and N1,1 by equation (2). This gives
N0,2(t) =
t − t0
t1 − t0
N0,1(t) +
t2 − t
t2 − t1
N1,1(t)
= tN0,1(t) + (2 − t)N1,1(t)
=



t if 0 ≤ t  1
2 − t if 1 ≤ t  2
0 otherwise
This curve is shown in the following figure. The curve is piecewise linear, with support in the interval [0, 2].
  ¡ ¢ £ ¤
¥§¦©¨
These functions are commonly referred to as “hat” functions and are used as blending functions in many
linear interpolation problems.
Similarly, we can calculate N1,2 to be
N1,2(t) =
t − t1
t2 − t1
N1,1(t) +
t3 − t
t3 − t2
N2,1(t)
= (t − 1)N1,1(t) + (3 − t)N2,1(t)
=



t − 1 if 1 ≤ t  2
3 − t if 2 ≤ t  3
0 otherwise
This curve is shown in the following figure, and it is easily seen to be a shifted version of N0,2.
4
  ¡ ¢ £ ¤
¥§¦©¨
Finally, we have that
N1,2(t) =



t − 2 if 2 ≤ t  3
4 − t if 3 ≤ t  4
0 otherwise
which is shown in the following illustration.
  ¡ ¢ £ ¤
¥§¦©¨
These nonzero portion of these curves each cover the intervals spanned by three knots – e.g., N1,2 spans the
interval [1, 3]. The curves are piecewise linear, made up of two linear segments joined continuously.
Sinve the curves are shifted versions of each other, we can write
Ni,2(t) = N0,2(t − i)
Blending Functions for k = 3
5
For the case k = 3, we again use equation (2) to obtain
N0,3(t) =
t − t0
t2 − t0
N0,2(t) +
t3 − t
t3 − t1
N1,2(t)
=
t
2
N0,2(t) +
3 − t
2
N1,2(t)
=



t2
2 if 0 ≤ t  1
t2
2 (2 − t) + 3−t
2 (t − 1) if 1 ≤ t  2
(3−t)2
2 if 2 ≤ t  3
0 otherwise
=



t2
2 if 0 ≤ t  1
−3+6t−2t2
2 if 1 ≤ t  2
(3−t)2
2 if 2 ≤ t  3
0 otherwise
and by nearly identical calculations,
N1,3(t) =
t − t1
t3 − t1
N1,2(t) +
t4 − t
t4 − t2
N2,2(t)
=
t − 1
2
N1,2(t) +
4 − t
2
N2,2(t)
=



(t−1)2
2 if 1 ≤ t  2
−11+10t−2t2
2 if 2 ≤ t  3
(4−t)2
2 if 3 ≤ t  4
0 otherwise
These curves are shown in the following figure. They are clearly piecewise quadratic curves, each made up
of three parabolic segments that are joined at the knot values (we have placed tick marks on the curves to
show where they join).
6
  ¡ ¢ £ ¤
¥§¦©¨
   !
§#©$%'(
The nonzero portion of these two curves each span the interval between four consecutive knots – e.g., the
nonzero portion of N1,3 spans the interval [1, 4]. Again, N1,3 can be seen visually to be a shifted version of
N0,3. (This fact can also be seen analytically by substituting t + 1 for t in the equation for N1,3.) We can
write
Ni,3(t) = N0,3(t − i)
Blending Functions of Higher Orders
It is not too difficult to conclude that the Ni,4 blending functions will be piecewise cubic functions. The
support of Ni,4 will be the interval [i, i + 4] and each of the blending functions will be shifted versions of
each other, allowing us to write
Ni,4(t) = N0,4(t − i)
In general, the uniform blending functions Ni,k will be piecewise k − 1st degree functions having support
in the interval [i, i + k). They will be shifted versions of each other and each can be written in terms of a
“basic” function
Ni,k(t) = N0,k(t − i)
7
Summary
In the case of the uniform knot sequence, the blending functions are fairly easy to calculate, are shifted
versions of each other, and have support over a simple interval determined by the knots. These characteristics
are unique to the uniform blending functions.
For other special characteristics see the notes that describe writing the uniform blending functions as a
convolution, and the notes that describe the two-scale relation for uniform B-splines
All contents copyright (c) 1996, 1997, 1998, 1999, 2000
Computer Science Department, University of California, Davis
All rights reserved.
8
On-Line Geometric Modeling Notes
THE DEBOOR-COX CALCULATION
Kenneth I. Joy
Visualization and Graphics Research Group
Department of Computer Science
University of California, Davis
Overview
In 1972, Carl DeBoor and M.G. Cox independently discovered the relationship between the analytic
and geometric definitions of B-splines. Starting with the definition of the normalized B-spline blending
functions, these two researchers were able to develop the geometric definition of the B-spline. It is this
calculation that is discussed in this paper.
Definition of the B-Spline Curve
A B-spline curve P(t), is defined by
P(t) =
n
i=0
PiNi,k(t) (1)
where
• the {Pi : i = 0, 1, ..., n} are the control points,
• k is the order of the polynomial segments of the B-spline curve. Order k means that the curve is made
up of piecewise polynomial segments of degree k − 1,
• the Ni,k(t) are the “normalized B-spline blending functions”. They are described by the order k and
by a non-decreasing sequence of real numbers
{ti : i = 0, ..., n + k} .
normally called the “knot sequence”. The Ni,k functions are described as follows
Ni,1(t) =



1 if t ∈ [ti, ti+1),
0 otherwise.
(2)
and if k  1,
Ni,k(t) =
t − ti
ti+k−1 − ti
Ni,k−1(t) +
ti+k − t
ti+k − ti+1
Ni+1,k−1(t) (3)
• the parameter t ranges throughout the interval [tk−1, tn+1).
We note that if, in equation (3), either of the N terms on the right hand side of the equation are zero, or
the subscripts are out of the range of the summation limits, then the associated fraction is not evaluated and
the term becomes zero. This is to avoid a zero-over-zero evaluation problem.
The order k is independent of the number of control points (n + 1). In the B-Spline curve, unlike
the B´ezier Curve, we have the flexibility of using many control points, and restricting the degree of the
polymonial segments.
The DeBoor-Cox Calculation
In the DeBoor-Cox calculation, we substitute the definition of Ni,k(t) given in equation (3), into the
right-hand side of
P(t) =
n
i=0
PiNi,k(t)
and simplify. This will give us the definition of P(t) in terms of Ni,k−1, which is of lower degree. The
general idea is to continue this process until the sum is written with Ni,1 functions, which we can evaluate
easily.
So here we go. If t ∈ [tk−1, tn+1), then by substituting equation (3) into the equation (1), we have
2
P(t) =
n
i=0
PiNi,k(t)
=
n
i=0
Pi
t − ti
ti+k−1 − ti
Ni,k−1(t) +
ti+k − t
ti+k − ti+1
Ni+1,k−1(t)
Distributing the sums, we obtain
=
n
i=0
Pi
t − ti
ti+k−1 − ti
Ni,k−1(t) +
n
i=0
Pi
ti+k − t
ti+k − ti+1
Ni+1,k−1(t)
We now separate out those unique terms of each sum, N0,k−1 and Nn+1,k−1, giving
= P0
t − t0
tk−1 − t0
N0,k−1(t) +
n
i=1
Pi
t − ti
ti+k−1 − ti
Ni,k−1(t)
+
n−1
i=0
Pi
ti+k − t
ti+k − ti+1
Ni+1,k−1(t) + Pn
tn+k − t
tn+k − tn+1
Nn+1,k−1(t)
Now since the support of a B-spline blending function Ni,k(t) is the interval [ti, ti+k], we have that
N0,k−1 is non-zero only if t ∈ [t0, tk−1), which is outside the interval [tk−1, tn+1) (where P(t) is defined).
Thus, N0,k−1(t) ≡ 0. Also Nn+1,k−1 is non-zero only if t ∈ [tn+1, tn+k−1), which is outside the interval
3
[tk−1, tn+1). Thus, Nn+1,k−1(t) ≡ 0 and we have
P(t) =
n
i=1
Pi
t − ti
ti+k−1 − ti
Ni,k−1(t) +
n−1
i=0
Pi
ti+k − t
ti+k − ti+1
Ni+1,k−1(t)
If we change the summation limits, we get
=
n
i=1
Pi
t − ti
ti+k−1 − ti
Ni,k−1(t) +
n
i=1
Pi−1
ti+k−1 − t
ti+k−1 − ti
Ni,k−1(t)
Combining the two sums, and rewriting, we obtain
=
n
i=1
ti+k−1 − t
ti+k−1 − ti
Pi−1 +
t − ti
ti+k−1 − ti
Pi Ni,k−1(t)
If we denote
P
(1)
i (t) =
ti+k−1 − t
ti+k−1 − ti
Pi−1 +
t − ti
ti+k−1 − ti
Pi
then the above result may be written
P(t) =
n
i=1
P
(1)
i (t)Ni,k−1(t)
Now we have written the summation terms of equation (1) in terms of blending functions of lower degree.
Of course, we have transferred some of the complexity to the P
(1)
i s, but we retain a similar form with control
points P
(1)
i s weighted by blending functions, and we can repeat this calculation again.
Once again then, repeating the calculation and manipulating the sums, we obtain
P(t) =
n
i=2
P
(2)
i (t)Ni,k−2(t)
where
P
(2)
i (t) =
ti+k−2 − t
ti+k−2 − ti
P
(1)
i−1(t) +
t − ti
ti+k−2 − ti
P
(1)
i (t)
4
(Note the appearance of the 2s on the right-hand side of the equation.)
If we continue with this process again, we will manipulate the sum so that the blending functions have
order k − 3. Then again with give us k − 4, and eventually we will obtain blending functions of order 1. We
are lead to the following result: If we define
P
(j)
i (t) =



(1 − τj
i )P
(j−1)
i−1 (t) + τj
i P
(j−1)
i (t) if j  0
Pi if j = 0
(4)
where
τj
i =
t − ti
ti+k−j − ti
Then, if t is in the interval [tl, tl+1), we have
P(t) = P
(k−1)
l (t)
This can be shown by continuing the DeBoor-Cox calculation k − 1 times. When complete, we arrive
at the formula
P(t) =
n
i=k−1
P
(k−1)
i (t)Ni,1(t)
where P
(j)
i (t) is given in equation (4). (Note the algebraic simplification that the τ’s provide.) If t ∈
[tl, tl+1], then then the only nonzero term of the sum is the lth term, which is one, and the sum must equal
P
(k−1)
l (t).
This enables us to define the geometrical definition of the B-spline curve.
Geometric Definition of the B-Spline Curve
Given a set of Control Points
P0, P1, ..., Pn
5
and a set of knots
t0, t1, ..., tn+k
The B-Spline curve of order k is defined to be
P(t) = P
(k−1)
l (t)if t ∈ [tl, tl+1)
where
P
(j)
i (t) =



(1 − τj
i )P
(j−1)
i−1 (t) + τj
i P
(j−1)
i (t) if j  0
Pi if j = 0
and
τj
i =
t − ti
ti+k−j − ti
6
It is useful to view the geometric construction as the following pyramid
...
Pl−k+1
P
(1)
l−k+2
Pl−k+2 P
(2)
l−k+3
P
(1)
l−k+3 ·
Pl−k+3 ·
Pl−k+4
· P
(k−2)
l−1
· P
(k−1)
l
· P
(k−2)
l
·
Pl−2 P
(2)
l−1
P
(1)
l−1 ·
Pl−1 P
(2)
l
P
(1)
l
Pl
...
Any P
(j)
i in this pyramid is calculated as a convex combination of the two P functions immediately to it’s
left.
Summary
The DeBoor-Cox calculation is a fundamental result in the geometric modeling field. It was used to
exhibit the relation between the analytic definition of the B-Spline curve and the geometric definition of the
curve. The geometric definition of the curve, because of its computational stability has become the primary
technique by which points on these curves are calculated.
7
All contents copyright (c) 1996, 1997, 1998, 1999, 2000
Computer Science Department, University of California, Davis
All rights reserved.
8
On-Line Geometric Modeling Notes
THE SUPPORT OF A
NORMALIZED B-SPLINE BLENDING FUNCTION
Kenneth I. Joy
Visualization and Graphics Research Group
Department of Computer Science
University of California, Davis
Overview
A B-spline blending function Ni,k(t) has compact support. This means that the function is zero outside
of some interval. In these notes, We find this interval explicitly in terms of the knot sequence.
The Support of the Function
Given an order k, and a knot sequence {t0, t1, t2, ..., tn+k}, the normalized B-spline blending function
Ni,k(t) is positive if and only if t ∈ [ti, ti+k).
We can show that this is true by considering the following pyramid structure.
Ni,1
. Ni+1,1
. .
. .
Ni,k−2 .
Ni,k−1
Ni,k Ni+1,k−2
Ni+1,k−1
Ni+2,k−2 .
. .
. .
. Ni+k−2,1
Ni+k−1,1
The definition of the normalized blending function Ni,k as a weighted sum of Ni,k−1(t) and Ni+1,k−1(t).
Thus for any of the N functions in the pyramid, it is a weighted sum of the two items immediately to its
right. If we follow the pyramid to its right edge, we see that the only blending functions Nj,1 that contribute
to Ni,k are those with i ≤ j ≤ i + k − 1, and these function are collectively nonzero when t ∈ [ti, ti+k).
Summary
A B-spline blending function has compact support. The support of this function depends on the knot
sequence and always covers an interval of containing several knots – containing k + 1 knots if the curve is
or order k.
All contents copyright (c) 1996, 1997, 1998, 1999, 2000
Computer Science Department, University of California, Davis
All rights reserved.
2

Más contenido relacionado

La actualidad más candente

Solid modeling-Sweep Representation and B-representation
Solid modeling-Sweep Representation and B-representationSolid modeling-Sweep Representation and B-representation
Solid modeling-Sweep Representation and B-representationDestro Destro
 
Geometric transformation
Geometric transformationGeometric transformation
Geometric transformationDhruv Shah
 
Nurbs (1)
Nurbs (1)Nurbs (1)
Nurbs (1)MAKAUT
 
CAD - UNIT 2 (Geometric Modelling)
CAD - UNIT 2 (Geometric Modelling)CAD - UNIT 2 (Geometric Modelling)
CAD - UNIT 2 (Geometric Modelling)Priscilla CPG
 
Part 4-Types and mathematical representations of Curves .pptx
Part 4-Types and mathematical representations of Curves .pptxPart 4-Types and mathematical representations of Curves .pptx
Part 4-Types and mathematical representations of Curves .pptxKhalil Alhatab
 
ME6501 Unit 2 geometric modeling
ME6501 Unit 2 geometric modelingME6501 Unit 2 geometric modeling
ME6501 Unit 2 geometric modelingJavith Saleem
 
Surface models
Surface modelsSurface models
Surface modelsnmahi96
 
Computer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal AlgorithmComputer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal AlgorithmJyotiraman De
 
Curve modeling-bezier-curves
Curve modeling-bezier-curvesCurve modeling-bezier-curves
Curve modeling-bezier-curvesMahmudul Hasan
 
Surface representation
Surface representationSurface representation
Surface representationSunith Guraddi
 
Computer graphics curves and surfaces (1)
Computer graphics curves and surfaces (1)Computer graphics curves and surfaces (1)
Computer graphics curves and surfaces (1)RohitK71
 
Quadric surfaces
Quadric surfacesQuadric surfaces
Quadric surfacesAnkur Kumar
 
Lec15: Medical Image Registration (Introduction)
Lec15: Medical Image Registration (Introduction)Lec15: Medical Image Registration (Introduction)
Lec15: Medical Image Registration (Introduction)Ulaş Bağcı
 
Unit 2-ME8691 & COMPUTER AIDED DESIGN AND MANUFACTURING
Unit 2-ME8691 & COMPUTER AIDED DESIGN AND    MANUFACTURINGUnit 2-ME8691 & COMPUTER AIDED DESIGN AND    MANUFACTURING
Unit 2-ME8691 & COMPUTER AIDED DESIGN AND MANUFACTURINGMohanumar S
 
Bezier Curve and Spline Curve
Bezier Curve and Spline CurveBezier Curve and Spline Curve
Bezier Curve and Spline CurveAsifShahariar1
 
Hidden surface removal algorithm
Hidden surface removal algorithmHidden surface removal algorithm
Hidden surface removal algorithmKKARUNKARTHIK
 

La actualidad más candente (20)

Bezier Curve
Bezier Curve Bezier Curve
Bezier Curve
 
Solid modeling-Sweep Representation and B-representation
Solid modeling-Sweep Representation and B-representationSolid modeling-Sweep Representation and B-representation
Solid modeling-Sweep Representation and B-representation
 
Geometric transformation
Geometric transformationGeometric transformation
Geometric transformation
 
Nurbs (1)
Nurbs (1)Nurbs (1)
Nurbs (1)
 
CAD - UNIT 2 (Geometric Modelling)
CAD - UNIT 2 (Geometric Modelling)CAD - UNIT 2 (Geometric Modelling)
CAD - UNIT 2 (Geometric Modelling)
 
Part 4-Types and mathematical representations of Curves .pptx
Part 4-Types and mathematical representations of Curves .pptxPart 4-Types and mathematical representations of Curves .pptx
Part 4-Types and mathematical representations of Curves .pptx
 
ME6501 Unit 2 geometric modeling
ME6501 Unit 2 geometric modelingME6501 Unit 2 geometric modeling
ME6501 Unit 2 geometric modeling
 
Surface models
Surface modelsSurface models
Surface models
 
Computer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal AlgorithmComputer Graphics - Hidden Line Removal Algorithm
Computer Graphics - Hidden Line Removal Algorithm
 
Curve modeling-bezier-curves
Curve modeling-bezier-curvesCurve modeling-bezier-curves
Curve modeling-bezier-curves
 
ppt on image processing
ppt on image processingppt on image processing
ppt on image processing
 
Surface representation
Surface representationSurface representation
Surface representation
 
Computer graphics curves and surfaces (1)
Computer graphics curves and surfaces (1)Computer graphics curves and surfaces (1)
Computer graphics curves and surfaces (1)
 
Quadric surfaces
Quadric surfacesQuadric surfaces
Quadric surfaces
 
Curves and surfaces
Curves and surfacesCurves and surfaces
Curves and surfaces
 
Lec15: Medical Image Registration (Introduction)
Lec15: Medical Image Registration (Introduction)Lec15: Medical Image Registration (Introduction)
Lec15: Medical Image Registration (Introduction)
 
Unit 2-ME8691 & COMPUTER AIDED DESIGN AND MANUFACTURING
Unit 2-ME8691 & COMPUTER AIDED DESIGN AND    MANUFACTURINGUnit 2-ME8691 & COMPUTER AIDED DESIGN AND    MANUFACTURING
Unit 2-ME8691 & COMPUTER AIDED DESIGN AND MANUFACTURING
 
Bezier Curve and Spline Curve
Bezier Curve and Spline CurveBezier Curve and Spline Curve
Bezier Curve and Spline Curve
 
Hidden surface removal algorithm
Hidden surface removal algorithmHidden surface removal algorithm
Hidden surface removal algorithm
 
Geometric modeling
Geometric modelingGeometric modeling
Geometric modeling
 

Destacado

B spline surfeces
B spline surfecesB spline surfeces
B spline surfecesramac123
 
Coons bicubic surface
Coons bicubic surfaceCoons bicubic surface
Coons bicubic surfaceramac123
 
Windows to viewport transformation
Windows to viewport transformationWindows to viewport transformation
Windows to viewport transformationPrashant Singh
 
Curves And Surfaces Representation And Application
Curves And Surfaces Representation And ApplicationCurves And Surfaces Representation And Application
Curves And Surfaces Representation And ApplicationDiaa ElKott
 
Window to viewport transformation
Window to viewport transformationWindow to viewport transformation
Window to viewport transformationAnkit Garg
 
Cellular manufacturing and group technology
Cellular manufacturing and group technologyCellular manufacturing and group technology
Cellular manufacturing and group technologyHitendrasinh Zala
 
FLEXIBLE MANUFACTURING SYSTEM
FLEXIBLE MANUFACTURING SYSTEMFLEXIBLE MANUFACTURING SYSTEM
FLEXIBLE MANUFACTURING SYSTEMAnand Khare
 
Concurrent Engineering
Concurrent EngineeringConcurrent Engineering
Concurrent Engineeringajithsrc
 

Destacado (11)

B spline surfeces
B spline surfecesB spline surfeces
B spline surfeces
 
Coons bicubic surface
Coons bicubic surfaceCoons bicubic surface
Coons bicubic surface
 
Windows and viewport
Windows and viewportWindows and viewport
Windows and viewport
 
Windows to viewport transformation
Windows to viewport transformationWindows to viewport transformation
Windows to viewport transformation
 
Curves And Surfaces Representation And Application
Curves And Surfaces Representation And ApplicationCurves And Surfaces Representation And Application
Curves And Surfaces Representation And Application
 
Window to viewport transformation
Window to viewport transformationWindow to viewport transformation
Window to viewport transformation
 
Group Technology
Group TechnologyGroup Technology
Group Technology
 
Cellular manufacturing and group technology
Cellular manufacturing and group technologyCellular manufacturing and group technology
Cellular manufacturing and group technology
 
FLEXIBLE MANUFACTURING SYSTEM
FLEXIBLE MANUFACTURING SYSTEMFLEXIBLE MANUFACTURING SYSTEM
FLEXIBLE MANUFACTURING SYSTEM
 
Concurrent Engineering
Concurrent EngineeringConcurrent Engineering
Concurrent Engineering
 
Concurrent Engineering
Concurrent EngineeringConcurrent Engineering
Concurrent Engineering
 

Similar a B spline

Find the compact trigonometric Fourier series for the periodic signal.pdf
Find the compact trigonometric Fourier series for the periodic signal.pdfFind the compact trigonometric Fourier series for the periodic signal.pdf
Find the compact trigonometric Fourier series for the periodic signal.pdfarihantelectronics
 
Matrix 2 d
Matrix 2 dMatrix 2 d
Matrix 2 dxyz120
 
Finite elements : basis functions
Finite elements : basis functionsFinite elements : basis functions
Finite elements : basis functionsTarun Gehlot
 
DIP_Lecture-35_36_RKJ_Interpolation_Resampling_Unitary_Transformations1.pptx
DIP_Lecture-35_36_RKJ_Interpolation_Resampling_Unitary_Transformations1.pptxDIP_Lecture-35_36_RKJ_Interpolation_Resampling_Unitary_Transformations1.pptx
DIP_Lecture-35_36_RKJ_Interpolation_Resampling_Unitary_Transformations1.pptxSubhKr1
 
Matrix 2 d
Matrix 2 dMatrix 2 d
Matrix 2 dxyz120
 
Approximating offset curves using B ´ ezier curves with high accuracy
Approximating offset curves using B ´ ezier curves with high accuracyApproximating offset curves using B ´ ezier curves with high accuracy
Approximating offset curves using B ´ ezier curves with high accuracyIJECEIAES
 
Weatherwax cormen solutions
Weatherwax cormen solutionsWeatherwax cormen solutions
Weatherwax cormen solutionskirankoushik
 
CS330-Lectures Statistics And Probability
CS330-Lectures Statistics And ProbabilityCS330-Lectures Statistics And Probability
CS330-Lectures Statistics And Probabilitybryan111472
 
Affine Yield Curves: Flexibility versus Incompleteness
Affine Yield Curves: Flexibility versus IncompletenessAffine Yield Curves: Flexibility versus Incompleteness
Affine Yield Curves: Flexibility versus IncompletenessDhia Eddine Barbouche
 
03 Cap 2 - fourier-analysis-2015.pdf
03 Cap 2 - fourier-analysis-2015.pdf03 Cap 2 - fourier-analysis-2015.pdf
03 Cap 2 - fourier-analysis-2015.pdfROCIOMAMANIALATA1
 
013_20160328_Topological_Measurement_Of_Protein_Compressibility
013_20160328_Topological_Measurement_Of_Protein_Compressibility013_20160328_Topological_Measurement_Of_Protein_Compressibility
013_20160328_Topological_Measurement_Of_Protein_CompressibilityHa Phuong
 
linear transformation and rank nullity theorem
linear transformation and rank nullity theorem linear transformation and rank nullity theorem
linear transformation and rank nullity theorem Manthan Chavda
 
14 unit tangent and normal vectors
14 unit tangent and normal vectors14 unit tangent and normal vectors
14 unit tangent and normal vectorsmath267
 
Computer graphics unit 4th
Computer graphics unit 4thComputer graphics unit 4th
Computer graphics unit 4thTEJVEER SINGH
 

Similar a B spline (20)

Find the compact trigonometric Fourier series for the periodic signal.pdf
Find the compact trigonometric Fourier series for the periodic signal.pdfFind the compact trigonometric Fourier series for the periodic signal.pdf
Find the compact trigonometric Fourier series for the periodic signal.pdf
 
Matrix 2 d
Matrix 2 dMatrix 2 d
Matrix 2 d
 
Lec20
Lec20Lec20
Lec20
 
Finite elements : basis functions
Finite elements : basis functionsFinite elements : basis functions
Finite elements : basis functions
 
DIP_Lecture-35_36_RKJ_Interpolation_Resampling_Unitary_Transformations1.pptx
DIP_Lecture-35_36_RKJ_Interpolation_Resampling_Unitary_Transformations1.pptxDIP_Lecture-35_36_RKJ_Interpolation_Resampling_Unitary_Transformations1.pptx
DIP_Lecture-35_36_RKJ_Interpolation_Resampling_Unitary_Transformations1.pptx
 
Matrix 2 d
Matrix 2 dMatrix 2 d
Matrix 2 d
 
Approximating offset curves using B ´ ezier curves with high accuracy
Approximating offset curves using B ´ ezier curves with high accuracyApproximating offset curves using B ´ ezier curves with high accuracy
Approximating offset curves using B ´ ezier curves with high accuracy
 
Weatherwax cormen solutions
Weatherwax cormen solutionsWeatherwax cormen solutions
Weatherwax cormen solutions
 
Computer science-formulas
Computer science-formulasComputer science-formulas
Computer science-formulas
 
03 image transform
03 image transform03 image transform
03 image transform
 
Time complexity
Time complexityTime complexity
Time complexity
 
CS330-Lectures Statistics And Probability
CS330-Lectures Statistics And ProbabilityCS330-Lectures Statistics And Probability
CS330-Lectures Statistics And Probability
 
Affine Yield Curves: Flexibility versus Incompleteness
Affine Yield Curves: Flexibility versus IncompletenessAffine Yield Curves: Flexibility versus Incompleteness
Affine Yield Curves: Flexibility versus Incompleteness
 
03 Cap 2 - fourier-analysis-2015.pdf
03 Cap 2 - fourier-analysis-2015.pdf03 Cap 2 - fourier-analysis-2015.pdf
03 Cap 2 - fourier-analysis-2015.pdf
 
Signals Processing Homework Help
Signals Processing Homework HelpSignals Processing Homework Help
Signals Processing Homework Help
 
013_20160328_Topological_Measurement_Of_Protein_Compressibility
013_20160328_Topological_Measurement_Of_Protein_Compressibility013_20160328_Topological_Measurement_Of_Protein_Compressibility
013_20160328_Topological_Measurement_Of_Protein_Compressibility
 
linear transformation and rank nullity theorem
linear transformation and rank nullity theorem linear transformation and rank nullity theorem
linear transformation and rank nullity theorem
 
Spline (2).ppt
Spline (2).pptSpline (2).ppt
Spline (2).ppt
 
14 unit tangent and normal vectors
14 unit tangent and normal vectors14 unit tangent and normal vectors
14 unit tangent and normal vectors
 
Computer graphics unit 4th
Computer graphics unit 4thComputer graphics unit 4th
Computer graphics unit 4th
 

Más de aa11bb11

Mathematical elements-for-computer-graphics-1
Mathematical elements-for-computer-graphics-1Mathematical elements-for-computer-graphics-1
Mathematical elements-for-computer-graphics-1aa11bb11
 
Lecture03 p1
Lecture03 p1Lecture03 p1
Lecture03 p1aa11bb11
 
Java assgn
Java assgnJava assgn
Java assgnaa11bb11
 
Graphics assgnmnt
Graphics assgnmntGraphics assgnmnt
Graphics assgnmntaa11bb11
 
Graphics pdf
Graphics pdfGraphics pdf
Graphics pdfaa11bb11
 
Graphics devices
Graphics devicesGraphics devices
Graphics devicesaa11bb11
 
Course plan computer graphics lab
Course plan computer graphics labCourse plan computer graphics lab
Course plan computer graphics labaa11bb11
 
Course plan computer graphics
Course plan computer graphicsCourse plan computer graphics
Course plan computer graphicsaa11bb11
 
Bresenham circlesandpolygons
Bresenham circlesandpolygonsBresenham circlesandpolygons
Bresenham circlesandpolygonsaa11bb11
 

Más de aa11bb11 (11)

Mathematical elements-for-computer-graphics-1
Mathematical elements-for-computer-graphics-1Mathematical elements-for-computer-graphics-1
Mathematical elements-for-computer-graphics-1
 
Lecture03 p1
Lecture03 p1Lecture03 p1
Lecture03 p1
 
Lect14
Lect14Lect14
Lect14
 
Java assgn
Java assgnJava assgn
Java assgn
 
Graphics assgnmnt
Graphics assgnmntGraphics assgnmnt
Graphics assgnmnt
 
Graphics pdf
Graphics pdfGraphics pdf
Graphics pdf
 
Graphics devices
Graphics devicesGraphics devices
Graphics devices
 
Course plan computer graphics lab
Course plan computer graphics labCourse plan computer graphics lab
Course plan computer graphics lab
 
Course plan computer graphics
Course plan computer graphicsCourse plan computer graphics
Course plan computer graphics
 
Code
CodeCode
Code
 
Bresenham circlesandpolygons
Bresenham circlesandpolygonsBresenham circlesandpolygons
Bresenham circlesandpolygons
 

B spline

  • 1. On-Line Geometric Modeling Notes DEFINITION OF A B-SPLINE CURVE Kenneth I. Joy Visualization and Graphics Research Group Department of Computer Science University of California, Davis Overview These notes present the direct definition of the B-Spline curve. This definition is given in two ways: first by an analytical definition using the normalized B-spline blending functions, and then through a geometric definition. The B-Spline Curve – Analytical Definition A B-spline curve P(t), is defined by P(t) = n i=0 PiNi,k(t) where • the {Pi : i = 0, 1, ..., n} are the control points, • k is the order of the polynomial segments of the B-spline curve. Order k means that the curve is made up of piecewise polynomial segments of degree k − 1, • the Ni,k(t) are the “normalized B-spline blending functions”. They are described by the order k and by a non-decreasing sequence of real numbers {ti : i = 0, ..., n + k} .
  • 2. normally called the “knot sequence”. The Ni,k functions are described as follows Ni,1(t) =    1 if u ∈ [ti, ti+1), 0 otherwise. (1) and if k > 1, Ni,k(t) = t − ti ti+k−1 − ti Ni,k−1(t) + ti+k − t ti+k − ti+1 Ni+1,k−1(t) (2) • and t ∈ [tk−1, tn+1). We note that if, in equation (2), either of the N terms on the right hand side of the equation are zero, or the subscripts are out of the range of the summation limits, then the associated fraction is not evaluated and the term becomes zero. This is to avoid a zero-over-zero evaluation problem. We also direct the readers attention to the “closed-open” interval in the equation (1). The order k is independent of the number of control points (n + 1). In the B-Spline curve, unlike the B´ezier Curve, we have the flexibility of using many control points, and restricting the degree of the polymonial segments. The B-Spline Curve – Geometric Definition Given a set of Control Points {P0, P1, ..., Pn}, an order k, and a set of knots {t0, t1, ..., tn+k}, the B-Spline curve of order k is defined to be P(t) = P (k−1) l (t) if u ∈ [tl, tl+1) where P (j) i (t) =    (1 − τj i )P (j−1) i−1 (t) + τj i P (j−1) i (t) if j > 0, Pi if j = 0. and τj i = t − ti ti+k−j − ti 2
  • 3. It is useful to view the geometric construction as the following pyramid ... Pl−k+1 P (1) l−k+2 Pl−k+2 P (2) l−k+3 P (1) l−k+3 · Pl−k+3 · Pl−k+4 · P (k−2) l−1 · P (k−1) l · P (k−2) l · Pl−2 P (2) l−1 P (1) l−1 · Pl−1 P (2) l P (1) l Pl ... Any P in this pyramid is calculated as a convex combination of the two P functions immediately to it’s left. All contents copyright (c) 1996, 1997, 1998, 1999 Computer Science Department, University of California, Davis All rights reserved. 3
  • 4. On-Line Geometric Modeling Notes THE UNIFORM B-SPLINE BLENDING FUNCTIONS Kenneth I. Joy Visualization and Graphics Research Group Department of Computer Science University of California, Davis Overview The normalized B-spline blending functions are defined recursively by Ni,1(t) =    1 if u ∈ [ti, ti+1) 0 otherwise (1) and if k > 1, Ni,k(t) = t − ti ti+k−1 − ti Ni,k−1(t) + ti+k − t ti+k − ti+1 Ni+1,k−1(t) (2) where {t0, t1, ..., tn+k} is a non-decreasing sequence of knots, and k is the order of the curve. These functions are difficult to calculate directly for a general knot sequence. However, if the knot sequence is uniform, it is quite straightforward to calculate these functions – and they have some suprising properties. Calculating the Blending Functions using a Uniform Knot Sequence Assume that {t0, t1, t2, ..., tn} is a uniform knot sequence, i.e., {0, 1, 2, ..., n}. This will simplify the calculation of the blending functions, as ti = i. Blending Functions for k = 1
  • 5. if k = 1, then by using equation (1), we can write the normalized blending functions as Ni,1(t) =    1 if u ∈ [i, i + 1) 0 otherwise (3) These are shown together in the following figure, where we have plotted N0,1, N1,1, N2,1, and N3,1 respec- tively, over five of the knots. Note the white circle at the end of the line where the functions value is 1. This represents the affect of the “open-closed” interval found in equation (1). 2
  • 6.  ¢¡¤£¥§¦©¨ ! # $ % ' ( ) 0 1 243653§7©89 @BADCE§F©GH IBPDQR§S©TU These functions have support (the region where the curve is nonzero) in an interval, with Ni,1 having support on [i, i + 1). They are also clearly shifted versions of each other – e.g., Ni+1,1 is just Ni,1 shifted one unit to the right. In fact, we can write Ni,1(t) = N0,1(t − i) Blending Functions for k = 2 3
  • 7. If k = 2 then N0,2 can be written as a weighted sum of N0,1 and N1,1 by equation (2). This gives N0,2(t) = t − t0 t1 − t0 N0,1(t) + t2 − t t2 − t1 N1,1(t) = tN0,1(t) + (2 − t)N1,1(t) =    t if 0 ≤ t 1 2 − t if 1 ≤ t 2 0 otherwise This curve is shown in the following figure. The curve is piecewise linear, with support in the interval [0, 2].   ¡ ¢ £ ¤ ¥§¦©¨ These functions are commonly referred to as “hat” functions and are used as blending functions in many linear interpolation problems. Similarly, we can calculate N1,2 to be N1,2(t) = t − t1 t2 − t1 N1,1(t) + t3 − t t3 − t2 N2,1(t) = (t − 1)N1,1(t) + (3 − t)N2,1(t) =    t − 1 if 1 ≤ t 2 3 − t if 2 ≤ t 3 0 otherwise This curve is shown in the following figure, and it is easily seen to be a shifted version of N0,2. 4
  • 8.   ¡ ¢ £ ¤ ¥§¦©¨ Finally, we have that N1,2(t) =    t − 2 if 2 ≤ t 3 4 − t if 3 ≤ t 4 0 otherwise which is shown in the following illustration.   ¡ ¢ £ ¤ ¥§¦©¨ These nonzero portion of these curves each cover the intervals spanned by three knots – e.g., N1,2 spans the interval [1, 3]. The curves are piecewise linear, made up of two linear segments joined continuously. Sinve the curves are shifted versions of each other, we can write Ni,2(t) = N0,2(t − i) Blending Functions for k = 3 5
  • 9. For the case k = 3, we again use equation (2) to obtain N0,3(t) = t − t0 t2 − t0 N0,2(t) + t3 − t t3 − t1 N1,2(t) = t 2 N0,2(t) + 3 − t 2 N1,2(t) =    t2 2 if 0 ≤ t 1 t2 2 (2 − t) + 3−t 2 (t − 1) if 1 ≤ t 2 (3−t)2 2 if 2 ≤ t 3 0 otherwise =    t2 2 if 0 ≤ t 1 −3+6t−2t2 2 if 1 ≤ t 2 (3−t)2 2 if 2 ≤ t 3 0 otherwise and by nearly identical calculations, N1,3(t) = t − t1 t3 − t1 N1,2(t) + t4 − t t4 − t2 N2,2(t) = t − 1 2 N1,2(t) + 4 − t 2 N2,2(t) =    (t−1)2 2 if 1 ≤ t 2 −11+10t−2t2 2 if 2 ≤ t 3 (4−t)2 2 if 3 ≤ t 4 0 otherwise These curves are shown in the following figure. They are clearly piecewise quadratic curves, each made up of three parabolic segments that are joined at the knot values (we have placed tick marks on the curves to show where they join). 6
  • 10.   ¡ ¢ £ ¤ ¥§¦©¨ ! §#©$%'( The nonzero portion of these two curves each span the interval between four consecutive knots – e.g., the nonzero portion of N1,3 spans the interval [1, 4]. Again, N1,3 can be seen visually to be a shifted version of N0,3. (This fact can also be seen analytically by substituting t + 1 for t in the equation for N1,3.) We can write Ni,3(t) = N0,3(t − i) Blending Functions of Higher Orders It is not too difficult to conclude that the Ni,4 blending functions will be piecewise cubic functions. The support of Ni,4 will be the interval [i, i + 4] and each of the blending functions will be shifted versions of each other, allowing us to write Ni,4(t) = N0,4(t − i) In general, the uniform blending functions Ni,k will be piecewise k − 1st degree functions having support in the interval [i, i + k). They will be shifted versions of each other and each can be written in terms of a “basic” function Ni,k(t) = N0,k(t − i) 7
  • 11. Summary In the case of the uniform knot sequence, the blending functions are fairly easy to calculate, are shifted versions of each other, and have support over a simple interval determined by the knots. These characteristics are unique to the uniform blending functions. For other special characteristics see the notes that describe writing the uniform blending functions as a convolution, and the notes that describe the two-scale relation for uniform B-splines All contents copyright (c) 1996, 1997, 1998, 1999, 2000 Computer Science Department, University of California, Davis All rights reserved. 8
  • 12. On-Line Geometric Modeling Notes THE DEBOOR-COX CALCULATION Kenneth I. Joy Visualization and Graphics Research Group Department of Computer Science University of California, Davis Overview In 1972, Carl DeBoor and M.G. Cox independently discovered the relationship between the analytic and geometric definitions of B-splines. Starting with the definition of the normalized B-spline blending functions, these two researchers were able to develop the geometric definition of the B-spline. It is this calculation that is discussed in this paper. Definition of the B-Spline Curve A B-spline curve P(t), is defined by P(t) = n i=0 PiNi,k(t) (1) where • the {Pi : i = 0, 1, ..., n} are the control points, • k is the order of the polynomial segments of the B-spline curve. Order k means that the curve is made up of piecewise polynomial segments of degree k − 1, • the Ni,k(t) are the “normalized B-spline blending functions”. They are described by the order k and by a non-decreasing sequence of real numbers {ti : i = 0, ..., n + k} .
  • 13. normally called the “knot sequence”. The Ni,k functions are described as follows Ni,1(t) =    1 if t ∈ [ti, ti+1), 0 otherwise. (2) and if k 1, Ni,k(t) = t − ti ti+k−1 − ti Ni,k−1(t) + ti+k − t ti+k − ti+1 Ni+1,k−1(t) (3) • the parameter t ranges throughout the interval [tk−1, tn+1). We note that if, in equation (3), either of the N terms on the right hand side of the equation are zero, or the subscripts are out of the range of the summation limits, then the associated fraction is not evaluated and the term becomes zero. This is to avoid a zero-over-zero evaluation problem. The order k is independent of the number of control points (n + 1). In the B-Spline curve, unlike the B´ezier Curve, we have the flexibility of using many control points, and restricting the degree of the polymonial segments. The DeBoor-Cox Calculation In the DeBoor-Cox calculation, we substitute the definition of Ni,k(t) given in equation (3), into the right-hand side of P(t) = n i=0 PiNi,k(t) and simplify. This will give us the definition of P(t) in terms of Ni,k−1, which is of lower degree. The general idea is to continue this process until the sum is written with Ni,1 functions, which we can evaluate easily. So here we go. If t ∈ [tk−1, tn+1), then by substituting equation (3) into the equation (1), we have 2
  • 14. P(t) = n i=0 PiNi,k(t) = n i=0 Pi t − ti ti+k−1 − ti Ni,k−1(t) + ti+k − t ti+k − ti+1 Ni+1,k−1(t) Distributing the sums, we obtain = n i=0 Pi t − ti ti+k−1 − ti Ni,k−1(t) + n i=0 Pi ti+k − t ti+k − ti+1 Ni+1,k−1(t) We now separate out those unique terms of each sum, N0,k−1 and Nn+1,k−1, giving = P0 t − t0 tk−1 − t0 N0,k−1(t) + n i=1 Pi t − ti ti+k−1 − ti Ni,k−1(t) + n−1 i=0 Pi ti+k − t ti+k − ti+1 Ni+1,k−1(t) + Pn tn+k − t tn+k − tn+1 Nn+1,k−1(t) Now since the support of a B-spline blending function Ni,k(t) is the interval [ti, ti+k], we have that N0,k−1 is non-zero only if t ∈ [t0, tk−1), which is outside the interval [tk−1, tn+1) (where P(t) is defined). Thus, N0,k−1(t) ≡ 0. Also Nn+1,k−1 is non-zero only if t ∈ [tn+1, tn+k−1), which is outside the interval 3
  • 15. [tk−1, tn+1). Thus, Nn+1,k−1(t) ≡ 0 and we have P(t) = n i=1 Pi t − ti ti+k−1 − ti Ni,k−1(t) + n−1 i=0 Pi ti+k − t ti+k − ti+1 Ni+1,k−1(t) If we change the summation limits, we get = n i=1 Pi t − ti ti+k−1 − ti Ni,k−1(t) + n i=1 Pi−1 ti+k−1 − t ti+k−1 − ti Ni,k−1(t) Combining the two sums, and rewriting, we obtain = n i=1 ti+k−1 − t ti+k−1 − ti Pi−1 + t − ti ti+k−1 − ti Pi Ni,k−1(t) If we denote P (1) i (t) = ti+k−1 − t ti+k−1 − ti Pi−1 + t − ti ti+k−1 − ti Pi then the above result may be written P(t) = n i=1 P (1) i (t)Ni,k−1(t) Now we have written the summation terms of equation (1) in terms of blending functions of lower degree. Of course, we have transferred some of the complexity to the P (1) i s, but we retain a similar form with control points P (1) i s weighted by blending functions, and we can repeat this calculation again. Once again then, repeating the calculation and manipulating the sums, we obtain P(t) = n i=2 P (2) i (t)Ni,k−2(t) where P (2) i (t) = ti+k−2 − t ti+k−2 − ti P (1) i−1(t) + t − ti ti+k−2 − ti P (1) i (t) 4
  • 16. (Note the appearance of the 2s on the right-hand side of the equation.) If we continue with this process again, we will manipulate the sum so that the blending functions have order k − 3. Then again with give us k − 4, and eventually we will obtain blending functions of order 1. We are lead to the following result: If we define P (j) i (t) =    (1 − τj i )P (j−1) i−1 (t) + τj i P (j−1) i (t) if j 0 Pi if j = 0 (4) where τj i = t − ti ti+k−j − ti Then, if t is in the interval [tl, tl+1), we have P(t) = P (k−1) l (t) This can be shown by continuing the DeBoor-Cox calculation k − 1 times. When complete, we arrive at the formula P(t) = n i=k−1 P (k−1) i (t)Ni,1(t) where P (j) i (t) is given in equation (4). (Note the algebraic simplification that the τ’s provide.) If t ∈ [tl, tl+1], then then the only nonzero term of the sum is the lth term, which is one, and the sum must equal P (k−1) l (t). This enables us to define the geometrical definition of the B-spline curve. Geometric Definition of the B-Spline Curve Given a set of Control Points P0, P1, ..., Pn 5
  • 17. and a set of knots t0, t1, ..., tn+k The B-Spline curve of order k is defined to be P(t) = P (k−1) l (t)if t ∈ [tl, tl+1) where P (j) i (t) =    (1 − τj i )P (j−1) i−1 (t) + τj i P (j−1) i (t) if j 0 Pi if j = 0 and τj i = t − ti ti+k−j − ti 6
  • 18. It is useful to view the geometric construction as the following pyramid ... Pl−k+1 P (1) l−k+2 Pl−k+2 P (2) l−k+3 P (1) l−k+3 · Pl−k+3 · Pl−k+4 · P (k−2) l−1 · P (k−1) l · P (k−2) l · Pl−2 P (2) l−1 P (1) l−1 · Pl−1 P (2) l P (1) l Pl ... Any P (j) i in this pyramid is calculated as a convex combination of the two P functions immediately to it’s left. Summary The DeBoor-Cox calculation is a fundamental result in the geometric modeling field. It was used to exhibit the relation between the analytic definition of the B-Spline curve and the geometric definition of the curve. The geometric definition of the curve, because of its computational stability has become the primary technique by which points on these curves are calculated. 7
  • 19. All contents copyright (c) 1996, 1997, 1998, 1999, 2000 Computer Science Department, University of California, Davis All rights reserved. 8
  • 20. On-Line Geometric Modeling Notes THE SUPPORT OF A NORMALIZED B-SPLINE BLENDING FUNCTION Kenneth I. Joy Visualization and Graphics Research Group Department of Computer Science University of California, Davis Overview A B-spline blending function Ni,k(t) has compact support. This means that the function is zero outside of some interval. In these notes, We find this interval explicitly in terms of the knot sequence. The Support of the Function Given an order k, and a knot sequence {t0, t1, t2, ..., tn+k}, the normalized B-spline blending function Ni,k(t) is positive if and only if t ∈ [ti, ti+k).
  • 21. We can show that this is true by considering the following pyramid structure. Ni,1 . Ni+1,1 . . . . Ni,k−2 . Ni,k−1 Ni,k Ni+1,k−2 Ni+1,k−1 Ni+2,k−2 . . . . . . Ni+k−2,1 Ni+k−1,1 The definition of the normalized blending function Ni,k as a weighted sum of Ni,k−1(t) and Ni+1,k−1(t). Thus for any of the N functions in the pyramid, it is a weighted sum of the two items immediately to its right. If we follow the pyramid to its right edge, we see that the only blending functions Nj,1 that contribute to Ni,k are those with i ≤ j ≤ i + k − 1, and these function are collectively nonzero when t ∈ [ti, ti+k). Summary A B-spline blending function has compact support. The support of this function depends on the knot sequence and always covers an interval of containing several knots – containing k + 1 knots if the curve is or order k. All contents copyright (c) 1996, 1997, 1998, 1999, 2000 Computer Science Department, University of California, Davis All rights reserved. 2