Characteristics of NURBS
NURBS are generally characterized by four features: Control Points, Weights, Degree, and Knot Vector.
Control Points are a set of model
space points which approximate the actual shape (typically, the curve
only interpolates these control points at the endpoints).
Weights are a set of scalars (one
per control point) that provide an indication of the attraction that a
particular control point has. The larger the weight, the more the curve
will be pulled toward the associated control point. Weights are NOT used
for non-rational B-splines.
Degree represents the number of
control points which define a single segment and thus the number of adjacent
segments that are blended to define each region. NURBS can give a very
good approximation while maintaining a low degree.
Knot Vector is another set of
decimals (individually they are referred to as knots) which primarily
determine the parameter space of the curve. The knots form a non-decreasing
sequence such that the first knot is the minimum parameter value and the
last knot is the maximum parameter value. The number of knots in a specific
knot vector depends on the following relation:
(# of knots) = (# of control points) + (degree) + 1
For a curve it is often convenient to think of the parameter
space as a time interval [min knot, max knot]. The knot vector determines
at what time you will be a certain location on a curve. Curves may be
identical in shape but have very different parameter spaces. The choice
of parameters will also impact the derivatives at each location (1st derivative
= velocity, 2nd derivative = acceleration).
Example:
The following NURB data describes a circle centered at the
origin on the XY-plane having a radius 10.
|
Degree: 2
Control Points: { (10,0,0), (10,-10,0), (0,-10,0), (-10,-10,0), (-10,0,0), (-10,10,0), (0,10,0), (10,10,0), (10,0,0) } Weights: { 1, 0.7071, 1, 0.7071, 1, 0.7071, 1, 0.7071, 1 } Knot Vector: { 0, 0, 0, 0.25, 0.25, 0.5, 0.5, 0.75, 0.75, 1, 1, 1 } |