0% found this document useful (0 votes)
176 views28 pages

B-Spline Curves ND Surfaces

The document discusses B-spline curves and surfaces. B-splines are piecewise polynomial curves used in computer-aided design and computer graphics. They are defined by a set of control points and knots. The document defines B-splines mathematically and describes how they can be evaluated efficiently using the Cox-de Boor recursion formula and Horner's algorithm. It also discusses properties of different types of B-splines including uniform, cardinal, and rational B-splines.

Uploaded by

Vikhyat Sood
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
176 views28 pages

B-Spline Curves ND Surfaces

The document discusses B-spline curves and surfaces. B-splines are piecewise polynomial curves used in computer-aided design and computer graphics. They are defined by a set of control points and knots. The document defines B-splines mathematically and describes how they can be evaluated efficiently using the Cox-de Boor recursion formula and Horner's algorithm. It also discusses properties of different types of B-splines including uniform, cardinal, and rational B-splines.

Uploaded by

Vikhyat Sood
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOCX, PDF, TXT or read online on Scribd
You are on page 1/ 28

INTRODUCTION

Spline curves and polygons are collectively termed "faces", while grids
and spline surfaces are termed "hulls". As opposed to polygonal types,
NURBS and Bzier entities are inherently smooth primitives known as
splines. It isn't necessary to master the mathematics behind what
differentiates the two spline types. It is, however, useful to understand
some of the concepts that arise from the mathematics of computer-
generated curves because they affect your choice of curve type when
you start creating in Touch, and they influence the way you draw that
curve. The term "B-spline" was coined by Isaac Jacob Schoenberg and is
short for basis spline. B-splines can be evaluated in a numerically
stable way by the de Boor algorithm. Simplified, potentially faster
variants of the de Boor algorithm have been created but they suffer
from comparatively lower stability. In the computer science subfields
of computer-aided design and computer graphics, the term
B-spline frequently refers to a spline curve parameterized
by spline functions that are expressed as linear combinations of B-
splines (in the mathematical sense above).
A B-spline is simply a generalization of a Bzier curve, and it can avoid
the Runge phenomenon without increasing the degree of the B-spline.
This spline category is the most widely used, and B-spline functions are
commonly available in CAD system and many graphics programming
packages. B-splines are generated by approximating a set of control
points.

DEFINITION
Given m real values t
i
, called knots, with

a B-spline of degree n is a parametric curve

composed of a linear combination of basis B-splines b
i,n
of degree n
.
The points are called control points or de Boor points. There are mn-1 control points, and
the convex hull of the control points is a bounding volume of the curve.
The m-n-1 basis B-splines of degree n can be defined, for n=0,1,...,m-2, using the Cox-de Boor recursion
formula


Note that j+n+1 can not exceed m-1, which limits both j and n.
When the knots are equidistant the B-spline is said to be uniform, otherwise non-uniform. If two
knots t
j
are identical, any resulting indeterminate forms 0/0 are deemed to be 0.
Note that when one sums a run of adjacent n-degree basis B-splines one obtains, from this recursion

for any sum with
When here, then this sum is, by this recursion, identically equal to 1, within
the limited subrange , (since this interval excludes the supports of the two
basis B-splines in the separate terms at the ends of this sum).
B
k
has compact support and is an even function. As the normalized
cardinal B-splines tend to the Gaussian function.
[6]


Uniform B-spline
When the B-spline is uniform, the basis B-splines for a given degree n are just shifted copies of
each other. An alternative non-recursive definition for the mn-1 basis B-splines is


with

and

where

is the truncated power function.



Cardinal B-spline
Define B
0
as the characteristic function of , and B
k
recursively as
the convolution product

then B
k
are called (centered) cardinal B-splines.

EXAMPLES:-

Constant B-spline
The constant B-spline is the simplest spline. It is defined on only one knot span and is not
even continuous on the knots. It is just the indicator function for the different knot spans.




Linear B-spline
The most straight-forward way of drawing a curve is by connecting a sequence of
points. The resulting curve is a linear spline, and is equivalent to a polygon. There are
two major drawbacks to this method of producing a curve. First, in order to produce
anything that actually appears curved; you would need a large number of points.
Storing and computing all those points is not an efficient use of the computer's
resources. Second, manipulating a curve created in this fashion is very cumbersome
because, once a point is moved, you lose the smoothness of the shape. The linear B-
spline is defined on two consecutive knot spans and is continuous on the knots, but
not differentiable.






Uniform quadratic B-spline
Quadratic B-splines with uniform knot-vector is a commonly used form of B-spline. The blending
function can easily be precalculated, and is equal for each segment in this case.


Put in matrix-form, it is:
for


Cubic B-Spline
A B-spline formulation for a single segment can be written as:

where Si is the ith B-spline segment and P is the set of control points, segment i and k is the local control point index.
A set of control points would be where the is weight, pulling the curve
towards control point as it increases or moving the curve away as it decreases.
An entire set of segments, m-2 curves ( ) defined by m+1 control points (
), as one B-spline in t would be defined as:










Uniform cubic B-splines
Cubic B-splines with uniform knot-vector is the most commonly used form of B-spline. The blending
function can easily be precalculated, and is equal for each segment in this case. Put in matrix-form, it is:

for

Higher Degree Splines

Orders
The "degree plus one" formulation is often referred to as the order of the curve. A cubic curve,
for example, has a degree of three and, therefore, an order of four.
The degree of the spline is given by the degree of the underlying blending functions. Touch
supports splines whose degrees vary from 1 to 10. The upper bound was chosen for practical
reasons and efficiency.
In the image above - On the left is a Linear spline (degree 1, order 2), in the middle a Quadratic spline (degree 2,
order 3) and on the right a Cubic spline (degree 3, order 4).
Breakpoints, Knots, and Spline Basis
Breakpoints are images of special values, called "knots", in what is known as the parametric
space or the domain of the spline. The domain, which is simply a sequence of knots in ascending
order, together with the spline order and the spline type define a spline basis.
Similarly, a surface is defined by two knot sequences forming a rectangular (U,V) domain. The
knot sequences must always be sorted in ascending order.

Relations of World Space and Domain Space
Since knots are the ingredients of the domain, they divide a curve's domain segment and a
surface's domain rectangle into smaller pieces whose size relative to each other is often more
important than the total size of the domain. Similarly, in world space, the areas delimited by
breakpoints divide a curve into curve segments and a surface into patches.
Depending on the type of spline, the relative knot distances usually determine the shape of the
spline given a fixed set of control vertices. The size and the origin of the domain are relevant
when identifying a surface's texture space with its parametric space. Then, if the texture is
expected to cover the entire surface only once, the domain of the surface must be a unit square.
Mapping a domain to a new range and origin does not affect the shape of the spline primitive
The knots need not be evenly spaced in the domain. The more knots there are in one area, the
smaller the spline segments and, therefore, you have a greater degree of control over the spline in
that area. If several knots are placed at one value, something called a multiplicity is produced.
Not all spline types allow multiplicities to occur.
Rational Splines
Touch supports two types of rational splines: NURBS, and Bzier. Each CV of the curve has X,
Y, and Z coordinates that determine its position in world space. There is also a fourth component
for each CV called W. The W component determines a CV's weight (see also: Point Weight (W)
). The weight determines the "pull" (like a magnet) of a CV on the spline curve. The value of the
W component makes a spline rational or non-rational. A non-rational spline has only equal
weights (typically, W=1), while a rational spline contains at least one different weight. While
non-positive weights (where W is less than or equal to zero) make sense in theory, they tend to
generate unintuitive shapes and cause the spline to break away from its convex hull. For practical
reasons, Touch supports only positive weights (W > 0).
The higher the weight of a CV, the sharper the spline around that CV. For large weight values,
the spline will almost go through the CV. Similarly, weights smaller than one tend to flatten the
spline in the area influenced by that CV.
.








B-spline Curve and Surface Evaluation
Abstract
Using the Taylor expansion, a B-spline segment can be efficiently represented in the
power basis. Consequently, we can use the Horner algorithm to evaluate points and
derivatives with respect to a given set of parameters. Our approach is a
generalization of W. Boehms algorithm.
1 Introduction
A vector-valued rational curve may be represented as R(t)=[(P(t))/W(t)],
where P:99
d
and W:99 are polynomials. Using the Leibnitz formula, we can
derive that the mth derivative of R(t) is given by
R
(m)
(t)=
P
(m)
(t)
m

i=1
C
m
i
R
(mi)
(t)W
(i)
(t)

W(t)
,

where, C
m
i
=[m!/(i!(mi)!)]. Similarly, differentiating a rational
surface, S(u,v)=[(P(u,v))/W(u,v)], m times in u and l times in v yields:
S
(m+l)
u
m
v
l
(u,v)=
P
(m+l)
u
m
v
l
(u,v)
(m,l)

(i,j) = (0,0)
C
l
j
C
m
i
S
u
mi
v
lj(lj+mi)
(u,v) W
(j+i)
u
i
v
j
(u,v)

W(u,v)
.

As it is seen, the evaluation of a rational curve/surface is actually based on evaluation
of a polynomial curve/surface. Therefore, we limit our discussion to polynomial
curves and surfaces in this paper.
A piecewise polynomial B-spline curve of order k (or degree n=k1) may be given by
P(t)=

i
d
i
N
i,k
(t),

(11)
2 Taylor expansion of B-spline curves
A Taylor expansion of a B-spline segment was proposed by Bhm.
2
For
completeness, we briefly review his method in this section and give our pseudo-code
that minimizes the use of computer memory.
Let d
0,0
i
=d
i
with d
i
being the de Boor points in (11). Then, the mth derivative of P(t)
is given by:
4,5

P
(m)
(t)=(k1)(k2).(km)


i
d
i
m,m
N
i,km
(t)

where,
d
i
m,m
=
d
i
m1,m1
d
i1
m1,m1


t
i+km
t
i

=
d
i
m1,m1
d
i1
m1,m1

i
m

(m=1,.,n).

(21)
Using the de Boor's knot insertion method, we may represent P
(m)
(t) in a lower degree
form:
P
(m)
(t)=(k1)(k2).(km)


i
d
i
p,m
N
i,kp
(t)

where,
2,3

d
p,m
i
=d
p1,m
i1
+(tt
i
)d
p,m+1
i
= d
p1,m
i1
+|
i
d
p,m+1
i
(p=m+1,.,n).

(22)
For t e (t
j
,t
j+1
), N
i,1
(t)=o
i,j
(o
i,j
=1 if i=j, otherwise o
i,j
=0). Therefore, when p=n, we
have
P
(m)
(t)=(k1)(k2).(km)d
j
n,m
(m=0,1,., n).

Accordingly, the evaluation of a point and m (m s n) derivatives at t e (t
j
,t
j+1
) reduces
to computing d
n,0
j
,d
n,1
j
,.,d
n,m
j
. When m > n, P
(m)
(t)=0 since P(t) is a polynomial
curve of degree n.
For t
*
e (t
j
,t
j+1
), it is known N
i,k
(t
*
) > 0 if i=jn,jn+1,.,j and N
i,k
(t
*
)=0 elsewhere.
Therefore, to evaluate a point and derivatives at t
*
e (t
j
,t
j+1
) requires:
- k relevant de Boor points ranging from d
jn
to d
j
.
- 2n relevant knots, ranging from t
jn+1
to t
j+n
, to compute
i
m
.
- n relevant knots, ranging from t
jn+1
to t
j
, to compute |
i
.
In consideration of the above facts, we present the following pseudo-code which
minimizes the number of divisions and the amount of memory space used:
(1) Compute
p
i
and |
p
:
Let [^t]
i
=t
jn+i
, where i=1,.,2n.
do p=1, n
do i=p, n

p
i
= 1 / ([^t]
i+kp
[^t]
i
)
enddo
|
p
=t
*
[^t]
p

enddo

(2) Compute d
m,m
i
using equation (21):
Let d
0,0
i
=d
jn+i
, where, i=0,1,.,n.
do m=1, n
do i=m, n
d
i
m,m
=
m
i
(d
i
m1,m1
d
m1,m1
i1
)
enddo
enddo

(3) From d
m,m
jn+m
we compute d
p,m
jn+p
using equation (22):
do p=1, n
do m=p1, 0, -1
d
p,m
m
=d
p1,m
m
+|
p
d
p,m+1
m+1

enddo
enddo
the Taylor expansion of the B-spline segment corresponding to t e [t
j
,t
j+1
] is given by
P(t)=
n

i=0

P
(i)
(t
*
)

i!
(tt
*
)
i
=
n

i=0

d
n,i
j


C
n
i

(tt
*
)
i
.

3 Taylor expansions of B-spline surfaces
A B-spline surface of order k
u
in u and k
v
in v is given by
S(u,v)=


i



j
N
i,ku
(u)N
j,kv
(v)d
i,j
.

We may write a B-spline surface as
S(u,v)=


j
N
j,kv
(v)d
j
(u),

(31)
where
d
j
(u)=


i
N
i,ku
(u)d
i,j
.

Assume (u
*
,v
*
) e (u
ju
,u
ju+1
)(v
jv
,u
jv+1
). By considering (31) as a B-spline curve with
parameter v, we can evaluate S
(l)
v
l
(u,v) (l=0,1,.,n
v
) at v
*
using the same approach for
curve and obtain:
S
(0)
(u,v
*
)=d
jv
n
v
,0
(u) =
i
N
i,ku
(u)d
i,jv
n
v
,0

S
(1)
v
(u,v
*
)=(k
v
1)d
jv
n
v
,1
(u) =
i
N
i,ku
(u)d
i,jv
n
v
,1

.
S
(l)
v
l
(u,v
*
)=(k
v
1).(k
v
l)d
jv
n
v
,l
(u) =
i
N
i,ku
(u)d
i,jv
n
v
,l

Given all partial derivatives of a polynomial surface S(u,v) at (u
*
,v
*
), we can represent the surface in the power basis
by the Taylor expansion:
S(u,v)=S(u
*
,v
*
)+
|

\
x
c

cu
+ y
c

cv
|
|
.
S(u
*
,v
*
)+.+
1

n!

|

\
x
c

cu
+y
c

cv
|
|
.
n


S(u
*
,v
*
)

Where n=n
u
+n
v
, x=uu
*
, y=vv
*
, and

|
\
x
c
cu
+y
c
cv
|
|.
k


S(u
*
,v
*
)=
ki=0
C
k
i

c
k
S(u
*
,v
*
)
cu
ki
cv
i

x
ki
y
i
, k=1,2,.,n

For a polynomial surface, it is noted that, if ki > n
u
or i > n
v
,

c
k
S(u
*
,v
*
)

cu
ki
cv
i

=0.

Therefore,

1

k!

|

\
x
c

cu
+y
c

cv
|
|
.
k


S=
k

i=0

C
k
i


k!

c
k
S

cu
ki
cv
i

x
ki
y
i
=
min{k,n
v
}

i=max{0,kn
u
}

C
k
i


k!

c
k
S

cu
ki
cv
i

x
ki
y
i
.

To speed up computation, we may create a coefficient table for
[(C
k
i
)/k!]=[1/(i!(ki)!)].


4 Horner algorithm
Given a cubic curve P(t)=a
0
+a
1
t+a
2
t
2
+a
3
t
3
with a
i
e 9
d
, we may evaluate the curve
efficiently using the well-known Horner method:
P(t) = t[t(a
3
t+a
2
)+a
1
]+a
0
.

As it is seen, only three multiplications are involved. To evaluate the first derivative,
we may compute first P
'
(t)=a
1
+2a
2
t+3a
3
t
2
, then the value of the first derivative using
the Horner method. In this way, it is readily checked that d(3n2) multiplications are
required to compute a point and the first derivative. An improved algorithm in
computing a point and the first derivative can be found in Acton's book.
1
Writing the
first derivative as
P
'
(t)=t[a
3
t+(a
3
t+a
2
)]+t(a
3
t+a
2
)+a
1
,

reveals the relation between the evaluation of a polynomial and its first derivative.


This is summarized in the following pseudo-code:
point = a(n) * t + a(n-1)
deriv = a(n)
do j = n-2, 0, -1
deriv = deriv * t + pt
point = point * t + a(j)
enddo

It is seen that only d(2n1) number of multiplications involved. Let eval(j) denote the
jth derivative. We extend the improved algorithm to the evaluation of m derivatives.
eval(0) = a(n) * t + a(n-1)
eval(1) = a(n)
do i=n-2, 0 , step=-1
k = min(m,n-i)
do j=k, 1, step=-1
eval(j) = eval(j) * t + eval(j-1)
enddo
enddo
c multiply derivatives by factorial constant:
k = 1
do i=2, m
k = k * i
eval(i) = eval(i) * k
enddo

It is readily checked that only d([(n(n+1))/2] + 3(n1)) multiplications are required to
evaluate a point and all n derivatives.

We can extend the above method to a surface. Given a vector-valued surface
S(u,v)=
m

j=0

n

i=0
a
ij
u
i
v
j
,

we may represent it in the following form:
S(u,v)=
m
j=0
a
j
(u) v
j
,

(41)
where a
j
(u)=
i=0
n
a
ij
u
i
. By considering (41) as a polynomial curve in v, we can use
the algorithm in evaluating a curve to obtain S(u,v),S
v
(1)
(u,v),.. Then, with respect
to S(u,v),S
(1)
v
(u,v) and so on, we compute derivatives in terms of u.
Basic examples
Use BSplineCurve with Graphics to create a cubic B-spline curve consisting of seven control
points:





In general, spline curves do not go through the control points. However, they do go through the
endpoints:





The Spline Degree option controls the underlying polynomial degrees of the spline curves. Usually,
the higher the degree, the smoother the resulting curve.




The SplineKnots option provides detailed control over the shape of a B-spline curve. Without
specifying values for SplineKnots, Mathematica gives the default knot sequence in such a way that the
resulting curve is smooth overall and the endpoints are interpolated:





This is the same curve, but with the default knot values explicitly shown. The first and the last
repeating knots make the curve go through the endpoints, where is the spline degree. The rest of the
knots are uniformly distributed:





By repeating the knot value in the middle, you can decrease the smoothness of the curve:





When the Spline Closed option is set to True, Mathematica will create a smoothly closed B-spline
curve:











The Spline Weights option can be used to assign weights to each point. The curve will be pulled toward
the points with larger weights:


With no explicit setting for Spline Weights, Mathematica assigns equal weights to each point:





Notice that the curve is pulled towards the middle point, which is given a weight of 5
with SplineWeights:

















By wrapping curves with Tube, you can create tubed spline curves in 3D. Here the tube radii are 0.2:










A tube with various radii can be created by associating a list of radii with the control points:









B Spline Surface creates a tensor product B-spline surface defined by a matrix of 3D points:





All the options for B Spline Curve work in the same way. However, for surfaces, you can specify them
in each parametric direction separately. For example, the following Spline Degree setting creates a B-
spline surface with degree 1 in one direction, and degree 3 in another:





Like the B-spline curves, a rational surface, or NURBS surface, can be created by using SplineWeights.
Many computer-aided design applications use NURBS to represent industrial surfaces. The following
example generates a right-angle cylindrical tube:












B-SPLINE SURFACES AND CONSTRUCTION
Given the following information:
A set of m+1 rows and n+1 control points p
i,j
, where 0 <= i <= m and 0 <= j <= n;a knot vector
of h + 1 knots in the u-direction, U = { u
0
, u
1
, ...., u
h
};a knot vector of k + 1 knots in the v-
direction, V = { v
0
, v
1
, ...., v
k
};the degree p in the u-direction; andthe degree q in the v-
direction;the B-spline surface defined by these information is the following:

where N
i,p
(u) and N
j,q
(v) are B-spline basis functions of degree p and q, respectively. Note that
the fundamental identities, one for each direction, must hold: h = m + p + 1 and k = n + q + 1. Therefore,
a B-spline surface is another example of tensor product surfaces. As in Bzier surfaces, the set of control
points is usually referred to as the control net and the range of u and v is 0 and 1. Hence, a B-spline
surface maps the unit square to a rectangular surface patch.
The following figure shows a B-spline surface defined by 6 rows and 6 columns of control points.

The knot vector and the degree in the u-direction are U = { 0, 0, 0, 0.25, 0.5, 0.75, 1, 1, 1 } and 2. The
knot vector and the degree in the v-direction are V = { 0, 0, 0, 0, 0.33, 0.66, 1, 1, 1, 1 } and 3.



Clamped, Closed and Open B-spline Surfaces

Since a B-spline curve can be clamped, closed or open, a B-spline surface can also have three
types in each direction. That is, we could ask to have a B-spline surface clamped in the u-
direction and closed in the v-direction. If a B-spline is clamped in both directions, then this
surface passes though control points p
0,0
, p
m,0
, p
0,n
and p
m,n
and is tangent to the eight legs of the
control net at these four control points. If a B-spline surface is closed in a direction, then all
isoparametric curves in this direction are closed curves and the surface becomes a tube.
If a B-spline surface is open in both directions, then the surface does not pass through control
points p
0,0
, p
m,0
, p
0,n
and p
m,n
. This set of notes only concentrates on B-spline surfaces clamped
in both directions. The following figures show three B-spline surfaces clamped, closed and open
in both directions. All three surfaces are defined on the same set of control points; but, as in B-
spline curves, their knot vectors are different.








B-spline Surfaces: Important Properties
Several important properties of B-spline surfaces are listed here. These properties can
be proved easily by applying the same techniques used for Bzier curves. Please
compare these important properties with those of B-spline curves'. Please recall that
the equation of a B-spline surface is the following

Where the degrees in the u- and v-directions are p and q, respectively, and there
are m+1 row and n+1 columns of control points.
- Nonnegativity: N
i,p
(u) N
j,q
(v) is nonnegative for all p, q, i, j and u and v in the
range of 0 and 1.
This is obvious.
- Partition of Unity: The sum of all N
i,p
(u) N
j,q
(v) is 1 for all u and v in the range
of 0 and 1.
More precisely, this means for any pair of u and v in the range of 0 and 1, the
following holds:

- Strong Convex Hull Property: if (u,v) is in [u
i
,u
i+1
) x [v
j
,v
j+1
), then p(u,v) lies in
the convex hull defined by control points p
h,k
, where i-p <= h <= i and j-
q <= k <= j.
This strong convex hull property for B-spline surfaces follows directly from
the strong convex hull property for B-spline curves. For the u-direction, if u is
in [u
i
,u
i+1
), then there are at most p+1 non-zero basis functions,
namely, N
i,p
(u), N
i-1,p
(u), ..., and N
i-p,p
(u). Thus, only the control points on row i-
p to row i have non-zero basis functions in the u-direction. Similarly, if v is in
[v
j
,v
j+1
), there are at most q+1 non-zero basis functions on this knot span,
namely N
j,q
(v), N
j-1,q
(v), ..., and N
j-q,q
(v). Thus, only the control points on
column j-q to column j have non-zero basis functions in the v-direction.
Combining these two facts together, only the control points in the range of
row i-p to row i and column j-q to q have non-zero basis functions.
- Local Modification Scheme: N
i,p
(u)N
j,q
(v) is zero if (u,v) is outside of the
rectangle [u
i
,u
i+p+1
) x [v
j
,v
j+q+1
)
From the local modification scheme property, we know that in the u-
direction N
i,p
(u) is non-zero on [u
i
,u
i+p+1
) and zero elsewhere. The local
modification scheme property of B-spline surfaces follows directly from the
curve case. If control point p
3,2
is moved to a new location, the following
figures show that only the neighboring area on the surface of the moved
control point changes shape and elsewhere is unchanged.

- p(u,v) is C
p-s
(resp., C
q-t
) continuous in the u (resp., v) direction if u (resp., v) is
a knot of multiplicity s (resp., t).
- Affine Invariance
This means that to apply an affine transformation to a B-spline surface one
can apply the transformation to all control points and the surface defined by
the transformed control points is identical to the one obtained by applying the
same transformation to the surface's equation.
- Variation Diminishing Property:
No such thing exists for surfaces.
- If m = p, n = q, and U = { 0, 0, ..., 0, 1, 1, ...., 1 }, then a B-spline surface
becomes a Bzier surface.

Basic Functions
The coefficient of control point p
i,j
is the product of two one-dimensional B-spline basis functions, one in
the u-direction, N
i,p
(u), and the other in the v-direction, N
j,q
(v). All of these products are two-
dimensional B-spline functions. The following figures show the basis functions of control
points p
2,0
, p
2,1
, p
2,2
, p
2,3
, p
2,4
and p
2,5
.


The two-dimensional basis functions are shown as wireframe surfaces. Since the control points are on
the same row, the basis function in the u-direction is fixed while the basis functions in the v-direction
change. Since B-spline basis functions are in general non-zero only on a few consecutive knot spans (i.e.,
the local modification scheme), the two-dimensional B-spline basis functions are non-zero on the
product of two knot spans on which at least one one-dimensional basis function is non-zero. This fact is
shown in the above figures clearly.
Rational B-Spline Surface
Rational means that each control point has a weight value associated to it. The weight
affects as a magnet pulling the surface closer to the control point. The greater the
weight the closer the surface encounters the control point. A non-rational surface can
be represented as a rational by setting the weight to 1.0.
To define rational B-splines, homogeneous coordinates are used. If is
a point in 3D space, the corresponding point in 4D homogeneous coordinates
is , where w is called the weight and w>0.
A rational B-Spline surface is defined as follows:

where the is the array of homogeneous control points .
An evaluated 3D point is recovered by dividing the first three coordinates by the
fourth as follows:









REFRENCE

BOOKS:-
- THIRD EDITION COMPUTER GRAPHICS
BY HEARN AND BAKER

WEBSITES:

- http://reference.wolfram.com
- http://www.cs.mtu.edu
- http://en.wikipedia.org/wiki/B-spline
- http://www.infogoaround.org/JBook/EvalBsp.html

You might also like