Nurb Curves and Computer Aided Design Cad

A NURB or Non-Uniform Rational B-Spline is used in a variety of applications, including Computer Aided Design (CAD) and computer animation. They can represent a large number of shapes and three-dimensional figures. Originally NURBS were developed in the 1960’s as a mathematical model to help design the complex curves used in automotive industry. The main component of a NURB is known as a B-Spline Curve.

A B-Spline Curve is a piecewise polynomial curve, which is cut into smaller pieces. It is blended with each end point of one curve and seamlessly connected to the beginning point of another. The curve passes near a set of control points that determine its shape by “weights”.

The weights pull or push the curve away from or toward the point. The weight value must be greater than zero. A Bezier Curve is a special case of the B-Spline that has an equation of order n-1 of control points considered. In other words, if a point is 3, then the order of the curve is 2. The order of the curve can also be defined as degree of polynomial+1.

The other main ingredient to a NURB is a knot vector. A knot is a breakpoint in the curve where it is connected to another curve. A knot vector is a sequence of breakpoints defined as U=UoUm where Ui>=Ui+1, which means it is non-decreasing. The number of knots must be equal to the number of control points plus the order of the curve.

The equation for a Bezier Curve is:
n
C(u)=Sigma Bi,n(u)Pi
i=0
This is a summation equation adding successive equations starting at i=0 for n times. The variable (u) is the function and Pi is the equation of the polynomial for number “i”.
Bi,n(u) is the Berenstein Polynomial defined as:

Bi,n(u)=n!n^i(1-u)^n-i/i!(n-i)!; n! is “n factorial” where =1x2x3xn. Ex; 3!=1x2x3.

One Bezier Curve is insufficient to obtain an accurate measurement that is why successive curves are calculated. In addition, a standard Bezier Curve cannot be used to represent a conic section. A conic section is a cross-section of a three-dimensional cone and includes circles, ellipses, and parabolas. What is needed in these cases is to use a Rational Bezier Curve. A rational function is a ratio of two polynomials and in the case of a Bezier Curve is:

n n
C(u)=Sigma Bi,n(u)Pi/C(u)=Sigma Bi,n(u)Wi Where Wi is the weight of each curve and 0<=u<=1.
i=0 i=0

In order for a Rational B-Spline (Bezier) Curve to fit a complex shape, a Piecewise Rational Curve will need to be used, constructed from several Bezier Curves connected at their breakpoints (knots). This brings us to the definition of a NURB: Non-Uniform (having breakpoints), Rational (fraction), B-Spline (defined above).

Once the data is compiled, either by hand or using a computer program (MATHLAB),
Each successive curve will be plotted and the shape obtained by the number and intensity of the weights.

NURBS were originally developed in the 1960’s in the automotive design industry to help designers deal with the aerodynamic complexities of new automobiles. Pierre Bezier worked at Renault and Citroen during those times and was one of the pioneers in Computer Aided Design (CAD) for automobiles. There are a couple of good URLs that show what kind of designs they were coming up with in those days:

1. Renault: http://www.users.wineasy.se/katriina/history.htm
2. Citroen: http://web.ukonline.co.uk/Members/jr.marsh/cars.htm

A more recent application for NURBS has been the field of computer animation. Software such as MAYA and Adobe Photoshop all use NURBS algorithms to form their complex three-dimensional images.

Of course, no CAD program would be worth it’s salt today if it did not have NURBS capabilities. Without it, designing an object beyond the two dimensions would be extremely tedious and time consuming.