liveBook · Manning

NURBS model

As explained in Geometry for Programmers

A surface representation constructed from weighted control points, knot vectors, and polynomial basis functions within the NURBS framework.

A NURBS model represents curves and surfaces with arrays of control points, weights, knot vectors, and polynomial basis functions. It generalizes Bézier curves, giving direct control over shape, interpolation, continuity, and position. This makes it useful for CAD, computer-aided engineering, games, geoinformation systems, and manufactured surfaces. section 7.0 section 7.3

Four parts explain the practical behavior of a NURBS model:

  • Basis splines combine scaled polynomial basis functions of a shared degree. Higher degree increases continuity but reduces the number of curve segments produced by a fixed set of control points. section 7.3.1
  • Nonuniform knot vectors assign parameter intervals to segments. Repeated knots can skip a segment and make selected control points lie on the curve. section 7.3.2
  • Rational weighting adds control beyond ordinary polynomial splines, supporting engineering curves and exact conic-related shapes and surfaces. section 7.3.5 section 7.6
  • Spline composition joins simpler functions into a compound curve that can use many control points without suffering from the Runge phenomenon. section 7.3.5

Evaluating a NURBS circle

A quadratic NURBS circle uses control-point coordinates, alternating weights of 1 and 1/√2, and the knot vector [0, 0, 0, 1, 1, 2, 2, 3, 3, 4, 4, 4]. De Boor’s algorithm finds the knot interval for parameter t, recursively blends the relevant control values, and divides by the final weight. The implementation stores these coordinates in homogeneous form before returning the planar point. section 7.3.4

Figure 7.22 Same control points, different knot vectors
07-22

Compare identical control points under different knot vectors to see how uniformity, repeated knots, and parameter spacing change interpolation and shape. section 7.3.2

How Geometry for Programmers covers it

How deep it goes
Explains basis degree, knot vectors, rational weights, homogeneous coordinates, and recursive evaluation without pursuing library-level implementation details.
Examples
Uses piecewise spline figures, varied knot vectors, degree comparisons, and a Python implementation that constructs a circle.
What it assumes
Assumes basic analytic geometry, linear algebra, calculus, polynomials, Bézier curves, and polynomial splines while introducing NURBS progressively.
What you can do after
Build it from scratch by assembling control points, weights, knots, degree, and a de Boor evaluator for a NURBS curve or surface.
How it connects
Connects Bézier curves, polynomial splines, rational Bézier curves, basis functions, knot vectors, homogeneous coordinates, and de Boor’s algorithm.

Related concepts

This explainer was generated by Manning's knowledge graph from the text of Geometry for Programmers. The section links point to the parts of the book it draws on.