B-Spline Curves Nd Surfaces

download B-Spline Curves Nd Surfaces

of 28

Transcript of 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/