Download - B-Spline Curves Nd Surfaces
-
8/2/2019 B-Spline Curves Nd Surfaces
1/28
INTRODUCTION
Spline curves and polygons are collectively termed "faces", while gridsand 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 programmingpackages. B-splines are generated by approximating a set of control
points.
-
8/2/2019 B-Spline Curves Nd Surfaces
2/28
DEFINITION
Given m real values ti, called knots, with
a B-spline of degree n is a parametric curve
composed of a linear combination ofbasis B-splinesbi,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 thatj+n+1 can not exceed m-1, which limits bothj and n.
When the knots are equidistant the B-spline is said to be uniform, otherwise non-uniform. If two
knots tj 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
-
8/2/2019 B-Spline Curves Nd Surfaces
3/28
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).
Bkhas compact support and is an even function. As the normalizedcardinal 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.
http://en.wikipedia.org/wiki/B-spline#cite_note-5http://en.wikipedia.org/wiki/B-spline#cite_note-5http://en.wikipedia.org/wiki/B-spline#cite_note-5http://en.wikipedia.org/wiki/B-spline#cite_note-5 -
8/2/2019 B-Spline Curves Nd Surfaces
4/28
Cardinal B-spline
Define B0 as the characteristic function of , and Bkrecursively asthe convolution product
then Bkare 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 produceanything 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.
-
8/2/2019 B-Spline Curves Nd Surfaces
5/28
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 iand 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 twould be defined as:
-
8/2/2019 B-Spline Curves Nd Surfaces
6/28
Uniform cubic B-splines
Cubic B-splines with uniform knot-vectoris 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
OrdersThe "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. Touchsupports 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).
-
8/2/2019 B-Spline Curves Nd Surfaces
7/28
Breakpoints, Knots, and Spline BasisBreakpoints are images of special values, called "knots", in what is known as the parametricspace 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 asurface'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 bybreakpoints 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 relevantwhen 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
http://www.derivative.ca/wiki077/index.php?title=File:KnotRatios.jpghttp://www.derivative.ca/wiki077/index.php?title=File:KnotsBreakpts.jpghttp://www.derivative.ca/wiki077/index.php?title=File:KnotRatios.jpghttp://www.derivative.ca/wiki077/index.php?title=File:KnotsBreakpts.jpg -
8/2/2019 B-Spline Curves Nd Surfaces
8/28
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 inthat area. If several knots are placed at one value, something called a multiplicity is produced.
Not all spline types allow multiplicities to occur.
Rational SplinesTouch 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 componentfor 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. Whilenon-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 practicalreasons, 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 thespline in the area influenced by that CV.
.
http://www.derivative.ca/wiki077/index.php?title=File:CVweight.jpg -
8/2/2019 B-Spline Curves Nd Surfaces
9/28
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:d and W: are polynomials. Using the Leibnitz formula, we can
derive that the mth derivative ofR(t) is given by
R(m)
(t)=P
(m)(t)
m
i=1
CmiR
(mi)(t)W
(i)(t)
W(t)
,
where, Cmi=[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)
um
vl(u,v)=
P(m+l)
um
vl(u,v)
(m,l)
(i,j) (0,0)
CljCm
iSu
mivlj(lj+mi)(u,v) W(j+i)u
ivj(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 di Ni,k(t), (11)
-
8/2/2019 B-Spline Curves Nd Surfaces
10/28
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 d0,0i=di with di being the de Boor points in (11). Then, the mth derivative ofP(t)is given by:4,5
P(m)
(t)=(k1)(k2)(km)i
dim,m
Ni,km(t)
where,
dim,m
=di
m1,m1di1m1,m1
ti+kmti=
dim1,m1di1
m1,m1
im
(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
dip,m
Ni,kp(t)
where,2,3
dp,m
i=dp1,m
i1+(tti)dp,m+1
i = dp1,m
i1+idp,m+1
i (p=m+1,,n). (22)
For t (tj,tj+1), Ni,1(t)=i,j (i,j=1 if i=j, otherwise i,j=0). Therefore, when p=n, we
have
P(m)
(t)=(k1)(k2)(km)djn,m
(m=0,1,, n).
Accordingly, the evaluation of a point and m (m n) derivatives at t (tj,tj+1) reducesto computing dn,0j,d
n,1j,,d
n,mj. When m > n, P
(m)(t)=0 since P(t) is a polynomial
curve of degree n.
-
8/2/2019 B-Spline Curves Nd Surfaces
11/28
For t* (tj,tj+1), it is known Ni,k(t*) > 0 if i=jn,jn+1,,j and Ni,k(t
*)=0 elsewhere.
Therefore, to evaluate a point and derivatives at t* (tj,tj+1) requires:
k relevant de Boor points ranging from djn to dj.
2n relevant knots, ranging from tj
n+1to t
j+n, to compute
i
m.
n relevant knots, ranging from tjn+1 to tj, 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 pi and p:Let [^t]i=tjn+i, where i=1,,2n.do p=1, n
do i=p, n
p
i = 1 / ([^t]i+kp[^t]i)enddop=t
*[^t]penddo
(2) Compute dm,mi using equation (21):Let d0,0i=djn+i, where, i=0,1,,n.do m=1, n
do i=m, n
dim,m=mi(di
m1,m1dm1,m1i1)enddo
enddo
(3) From dm,mjn+m we compute dp,m
jn+p using equation (22):do p=1, n
do m=p1, 0, -1dp,mm=d
p1,mm +pd
p,m+1m+1
enddo
enddo
the Taylor expansion of the B-spline segment corresponding to t [tj,tj+1] is given by
P(t)=
n
i=0
P(i)(t*)
i!(tt*)i =
n
i=0
dn,i
j
Cni(tt*)i.
-
8/2/2019 B-Spline Curves Nd Surfaces
12/28
3 Taylor expansions of B-spline surfaces
A B-spline surface of order ku in u and kv in v is given by
S(u,v)=
ij
Ni,ku(u)Nj,kv(v)di,j.
We may write a B-spline surface as
S(u,v)=j
Nj,kv(v)dj(u), (31)
where
dj(u)=i
Ni,ku(u)di,j.
Assume (u*,v*) (uju,uju+1)(vjv,ujv+1). By considering (31) as a B-spline curve withparameter v, we can evaluate S(l)v
l(u,v) (l=0,1,,nv) at v* using the same approach forcurve and obtain:
S(0)(u,v*)=djvn
v,0(u) = i Ni,ku(u)di,jv
nv,0
S
(1)
v(u,v
*
)=(kv1)djvn
v
,1
(u) = i Ni,ku(u)di,jvn
v
,1
S(l)vl(u,v*)=(kv1)(kvl)djv
nv,l(u) = i Ni,ku(u)di,jv
nv,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
u+ y
v
S(u
*,v*)++1
n!
x
u+y
v
n
S(u*,v
*)
Where n=nu+nv, x=uu*, y=vv*, and
x
u+y
v
k
S(u*,v
*)=
ki=0 CkikS(u*,v*)
ukivixkiyi , k=1,2,,n
-
8/2/2019 B-Spline Curves Nd Surfaces
13/28
For a polynomial surface, it is noted that, if ki > nu or i > nv,
kS(u*,v*)
ukivi=0.
Therefore,
1
k!
x
u+y
v
k
S=
k
i=0
Cki
k!
kS
ukivix
kiy
i=
min{k,nv}
i=max{0,knu}
Cki
k!
kS
ukivix
kiy
i.
To speed up computation, we may create a coefficient table for
[(Cki
)/k!]=[1/(i!(ki)!)].
4 Horner algorithm
Given a cubic curve P(t)=a0+a1t+a2t2+a3t
3 with aid, we may evaluate the curveefficiently using the well-known Horner method:
P(t) = t[t(a3t+a2)+a1]+a0.
As it is seen, only three multiplications are involved. To evaluate the first derivative,
we may compute first P(t)=a1+2a2t+3a3t2, then the value of the first derivative using
the Horner method. In this way, it is readily checked that d(3n2) multiplications arerequired 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[a3t+(a3t+a2)]+t(a3t+a2)+a1,
reveals the relation between the evaluation of a polynomial and its first derivative.
-
8/2/2019 B-Spline Curves Nd Surfaces
14/28
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 thejth 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 toevaluate 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
aijuivj,
we may represent it in the following form:
S(u,v)=
m
j=0aj(u) vj, (41)
where aj(u)=i=0naiju
i. By considering (41) as a polynomial curve in v, we can usethe algorithm in evaluating a curve to obtain S(u,v),Sv
(1)(u,v),. Then, with respectto S(u,v),S(1)v(u,v) and so on, we compute derivatives in terms of u.
-
8/2/2019 B-Spline Curves Nd Surfaces
15/28
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.
http://reference.wolfram.com/mathematica/ref/BSplineCurve.htmlhttp://reference.wolfram.com/mathematica/ref/Graphics.htmlhttp://input%28%27i_3%27%29/http://input%28%27i_3%27%29/http://input%28%27i_3%27%29/http://input%28%27i_3%27%29/http://input%28%27i_3%27%29/http://input%28%27i_3%27%29/http://reference.wolfram.com/mathematica/ref/Graphics.htmlhttp://reference.wolfram.com/mathematica/ref/BSplineCurve.html -
8/2/2019 B-Spline Curves Nd Surfaces
16/28
The SplineKnots option provides detailed control over the shape of a B-spline curve. Without
specifying values for SplineKnots,Mathematicagives 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,Mathematicawill create a smoothly closed B-spline
curve:
-
8/2/2019 B-Spline Curves Nd Surfaces
17/28
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,Mathematicaassigns equal weights to each point:
Notice that the curve is pulled towards the middle point, which is given a weight of 5
with SplineWeights:
http://input%28%27i_17%27%29/http://input%28%27i_21%27%29/http://input%28%27i_17%27%29/http://input%28%27i_21%27%29/http://input%28%27i_17%27%29/http://input%28%27i_21%27%29/http://input%28%27i_17%27%29/http://input%28%27i_21%27%29/http://input%28%27i_17%27%29/http://input%28%27i_21%27%29/http://input%28%27i_17%27%29/http://input%28%27i_21%27%29/http://input%28%27i_17%27%29/http://input%28%27i_21%27%29/http://input%28%27i_17%27%29/http://input%28%27i_21%27%29/http://input%28%27i_17%27%29/http://input%28%27i_21%27%29/http://input%28%27i_17%27%29/ -
8/2/2019 B-Spline Curves Nd Surfaces
18/28
-
8/2/2019 B-Spline Curves Nd Surfaces
19/28
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:
-
8/2/2019 B-Spline Curves Nd Surfaces
20/28
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 themin 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:
-
8/2/2019 B-Spline Curves Nd Surfaces
21/28
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:
-
8/2/2019 B-Spline Curves Nd Surfaces
22/28
B-SPLINE SURFACES AND CONSTRUCTION
Given the following information:
A set ofm+1 rows and n+1 control points pi,j, where 0
-
8/2/2019 B-Spline Curves Nd Surfaces
23/28
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 p0,0, pm,0, p0,n and pm,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 p0,0, pm,0, p0,n and pm,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.
-
8/2/2019 B-Spline Curves Nd Surfaces
24/28
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 thatthe equation of a B-spline surface is the following
Where the degrees in theu- andv-directions arepandq, respectively, and there
arem+1 row andn+1 columns of control points.
Nonnegativity:Ni,p(u)Nj,q(v) is nonnegative for allp,q,i,janduandvin therange of 0 and 1.
This is obvious.
Partition of Unity: The sum of allNi,p(u)Nj,q(v) is 1 for alluandvin the range
of 0 and 1.
More precisely, this means for any pair ofuandvin the range of 0 and 1, the
following holds:
Strong Convex Hull Property: if (u,v) is in [ui,ui+1) x [vj,vj+1), thenp(u,v) lies in
the convex hull defined by control pointsph,k, wherei-p
-
8/2/2019 B-Spline Curves Nd Surfaces
25/28
Local Modification Scheme:Ni,p(u)Nj,q(v) is zero if (u,v) is outside of the
rectangle [ui,ui+p+1) x [vj,vj+q+1)
From thelocal modification schemeproperty, we know that in theu-
directionNi,p(u) is non-zero on [ui,ui+p+1) and zero elsewhere. The local
modification scheme property of B-spline surfaces follows directly from thecurve case. If control pointp3,2is 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) isCp-s
(resp.,Cq-t
) continuous in theu(resp.,v) direction ifu(resp.,v) is
a knot of multiplicitys(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
http://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/bspline-curve-prop.html#local-modificationhttp://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/bspline-curve-prop.html#local-modificationhttp://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/bspline-curve-prop.html#local-modificationhttp://www.cs.mtu.edu/~shene/COURSES/cs3621/NOTES/spline/bspline-curve-prop.html#local-modification -
8/2/2019 B-Spline Curves Nd Surfaces
26/28
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 surfacebecomes a Bzier surface.
Basic Functions
The coefficient of control point pi,jis the product of two one-dimensional B-spline basis functions, one in
the u-direction, Ni,p(u), and the other in the v-direction, Nj,q(v). All of these products are two-
dimensional B-spline functions. The following figures show the basis functions of control
points p2,0, p2,1, p2,2, p2,3, p2,4 and p2,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.
-
8/2/2019 B-Spline Curves Nd Surfaces
27/28
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 canbe 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:
-
8/2/2019 B-Spline Curves Nd Surfaces
28/28
REFRENCE
BOOKS:-
THIRD EDITION COMPUTER GRAPHICSBY 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
http://reference.wolfram.com/http://www.cs.mtu.edu/http://en.wikipedia.org/wiki/B-splinehttp://www.facebook.com/l.php?u=http%3A%2F%2Fwww.infogoaround.org%2FJBook%2FEvalBsp.html&h=AAQGmAiq9http://www.facebook.com/l.php?u=http%3A%2F%2Fwww.infogoaround.org%2FJBook%2FEvalBsp.html&h=AAQGmAiq9http://www.facebook.com/l.php?u=http%3A%2F%2Fwww.infogoaround.org%2FJBook%2FEvalBsp.html&h=AAQGmAiq9http://en.wikipedia.org/wiki/B-splinehttp://www.cs.mtu.edu/http://reference.wolfram.com/