Jump to content
Main menu
Main menu
move to sidebar
hide
Navigation
Main page
Recent changes
Random page
Help about MediaWiki
Special pages
Niidae Wiki
Search
Search
Appearance
Create account
Log in
Personal tools
Create account
Log in
Pages for logged out editors
learn more
Contributions
Talk
Editing
B-spline
(section)
Page
Discussion
English
Read
Edit
View history
Tools
Tools
move to sidebar
hide
Actions
Read
Edit
View history
General
What links here
Related changes
Page information
Appearance
move to sidebar
hide
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
== NURBS == {{main|Non-uniform rational B-spline}} [[File:RationalBezier2D.svg|thumb|NURBS curve – polynomial curve defined in homogeneous coordinates (blue) and its projection on plane – rational curve (red)]] In [[computer aided design]], [[computer aided manufacturing]], and [[computer graphics]], a powerful extension of B-splines is non-uniform rational B-splines (NURBS). NURBS are essentially B-splines in [[homogeneous coordinates]]. Like B-splines, they are defined by their order, and a knot vector, and a set of control points, but unlike simple B-splines, the control points each have a weight. When the weight is equal to 1, a NURBS is simply a B-spline and as such NURBS generalizes both B-splines and [[Bézier curve]]s and surfaces, the primary difference being the weighting of the control points which makes NURBS curves "rational". [[Image:Surface modelling.svg|300px|right]] By evaluating a NURBS at various values of the parameters, the curve can be traced through space; likewise, by evaluating a NURBS surface at various values of the two parameters, the surface can be represented in Cartesian space. Like B-splines, NURBS control points determine the shape of the curve. Each point of the curve is computed by taking a weighted sum of a number of control points. The weight of each point varies according to the governing parameter. For a curve of degree ''d'', the influence of any control point is only nonzero in ''d''+1 intervals (knot spans) of the parameter space. Within those intervals, the weight changes according to a polynomial function (basis functions) of degree ''d''. At the boundaries of the intervals, the basis functions go smoothly to zero, the smoothness being determined by the degree of the polynomial. The knot vector is a sequence of parameter values that determines where and how the control points affect the NURBS curve. The number of knots is always equal to the number of control points plus curve degree plus one. Each time the parameter value enters a new knot span, a new control point becomes active, while an old control point is discarded. A NURBS curve takes the following form:<ref>Piegl and Tiller, chapter 4, sec. 2</ref> : <math>C(u) = \frac {\sum_{i=1}^k N_{i,n}(u)w_i P_i} {\sum_{i=1}^k N_{i,n}(u)w_i}</math> Here the notation is as follows. ''u'' is the independent variable (instead of ''x''), ''k'' is the number of control points, ''N'' is a B-spline (used instead of ''B''), ''n'' is the polynomial degree, ''P'' is a control point and ''w'' is a weight. The denominator is a normalizing factor that evaluates to one if all weights are one. It is customary to write this as : <math>C(u)=\sum_{i=1}^k R_{i,n}(u)P_i</math> in which the functions : <math>R_{i,n}(u) = \frac{N_{i,n}(u)w_i}{\sum_{j=1}^k N_{j,n}(u)w_j}</math> are known as the rational basis functions. A NURBS surface is obtained as the [[tensor product]] of two NURBS curves, thus using two independent parameters ''u'' and ''v'' (with indices ''i'' and ''j'' respectively):<ref>Piegl and Tiller, chapter 4, sec. 4</ref> : <math>S(u,v) = \sum_{i=1}^k \sum_{j=1}^\ell R_{i,j}(u,v) P_{i,j} </math> with : <math>R_{i,j}(u,v) = \frac {N_{i,n}(u) N_{j,m}(v) w_{i,j}} {\sum_{p=1}^k \sum_{q=1}^\ell N_{p,n}(u) N_{q,m}(v) w_{p,q}}</math> as rational basis functions.
Summary:
Please note that all contributions to Niidae Wiki may be edited, altered, or removed by other contributors. If you do not want your writing to be edited mercilessly, then do not submit it here.
You are also promising us that you wrote this yourself, or copied it from a public domain or similar free resource (see
Encyclopedia:Copyrights
for details).
Do not submit copyrighted work without permission!
Cancel
Editing help
(opens in new window)
Search
Search
Editing
B-spline
(section)
Add topic