### 1.4.1. CURVE GEOMETRY

##### NURBS (non-uniform rational B-splines) are mathematical representations that can accurately model any shape from a simple 2D line, circle, arc, or box to the most complex 3D free-form organic surface or solid. Because of their flexibility and accuracy, NURBS models can be used in any process from illustration and animation to manufacturing.

Since curves are geometric objects, they possess a number of properties or characteristics which can be used to describe or analyze them. For example, every curve has a starting coordinate and every curve has an ending coordinate. When the distance between these two coordinates is zero, the curve is closed. Also, every curve has a number of control-points, if all these points are located in the same plane, the curve as a whole is planar. Some properties apply to the curve as a whole, while others only apply to specific points on the curve. For example, planarity is a global property while tangent vectors are a local property. Also, some properties only apply to some curve types. So far we’ve discussed some of Grasshopper’s Primitive Curve Components such as: lines, circles, ellipses, and arcs.

1. Line
2. Polyline
3. Circle
4. Ellipse
5. Arc
6. NURBS Curve
7. Polycurve

1. End Point
2. Edit Point
3. Control Point

#### 1.4.1.1. NURBS CURVES

Degree: The degree is a positive whole number. This number is usually 1, 2, 3 or 5, but can be any positive whole number. The degree of the curve determines the range of influence the control points have on a curve; where the higher the degree, the larger the range. NURBS lines and polylines are usually degree 1, NURBS circles are degree 2, and most free-form curves are degree 3 or 5.

Control Points: The control points are a list of at least degree+1 points. One of the easiest ways to change the shape of a NURBS curve is to move its control points.

Weight: Control points have an associated number called a weight . Weights are usually positive numbers. When a curve’s control points all have the same weight (usually 1), the curve is called non-rational, otherwise the curve is called rational. Most NURBS curves are non-rational. A few NURBS curves, such as circles and ellipses, are always rational.

Knots: Knots are a list of (degree+N-1) numbers, where N is the number of control points.

Edit Points: Points on the curve evaluated at knot averages. Edit points are like control points except they are always located on the curve and moving one edit point generally changes the shape of the entire curve (moving one control point only changes the shape of the curve locally). Edit points are useful when you need a point on the interior of a curve to pass exactly through a certain location.

NURBS curve knots as a result of varying degree:

A D1 NURBS curve behaves the same as a polyline. A D1 curve has a knot for every control point.

D2 NURBS curves are typically only used to approximate arcs and circles. The spline intersects with the control polygon halfway each segment.

D3 is the most common type of NURBS curve and is the default in Rhino. You are probably very familiar with the visual progression of the spline, even though the knots appear to be in odd locations.