Rational v. Non-Rational Surfaces

I am trying to force myself to learn the details of Rhino scripting (Python). The documentation is often vague and there are a lot of dead links.

https://developer.rhino3d.com/api/RhinoScriptSyntax/win

What is the formal difference between a “rational” surface and a “non-rational” surface?

I see references that describe “rational” surfaces as something like a sphere.

It appears from the API that a rational surface lacks a degree and weights. What then matches the remaining parameters to a specific type of rational surface?

Simply put a rational surface or curve is one that has weighted control points.
Non-rational means all the control points have equal value. If the weights are all identical that value can be anything , but is set typically to one.

The general NURBS formula for a point on a surface or curve is a ratio of two polynomial equations but when the control points all have the same weights the equation becomes a simple polynomial equation (no ratio).

Anyway, when any of the points have weights other than 1 there is a ratio involved in computing the surface or curve points and that is why they are called “rational”

More about rational surfaces (and curves):

Rational surfaces and curves can be any degree. Changing control point weights changes the shape of the surface or curve, with the higher the weight of a control point the stronger the influence of the the control point on the shape of the surface or curve.

Conic curves and portions of conic curves (circles, arcs, ellipeses, parabolas and hyperbolas) cannot be represented exactly by a non-rational curve, but can be represented by degree two (or higher) curves with special sets of control point weights. Similarly certain shapes such as spheres, ellipsoids and parabaloids cannot be represented exactly by non-rational surfaces but can be but can be represented by a degree two (or higher) surfaces with special sets of control point weights. This is the primary use of rational curves and surfaces in CAD, and the reason most CAD software uses Non-Uniform Rational B-Splines.

A sphere for example can be exactly represented as a degree two surface with 24 unique control points and weights (96 scalars). But if a set of three points is specified, for example the center, one pole and the direction of the seam, (9 scalars) then the entire set of control points and weights can be directly calculated with simple formulas. My understanding is for such shapes Rhino has special types of objects using the simpler representation.

1 Like