The geometric definition of free from geometry in GenerativeComponents is based on BSpline geometry. BSpline curves are defined through a control polygon specified through a set of control points. A control polygon with more than two control points allows for different curves to be generated from the given points. There are two parameters that determine the type of curve that is being generated. One is the Order of the curve. The maximum order of a curve is the number of control points. For a two point curve the order is two. The degree of a curve is one less than the order of the curve. For a curve with only two points as the control polygon the order of the curve is two and therefore the degree is two minus 1 equals 1. The degree of a curve defines the highest denominator in the equation defining the curve. For our two point control polygon the curve therefore is a straight Line. As more control points are added both the order and degrees of the curve increase allowing for more varied curve geometry. It is possible to choose a lower order curve then the number of control points allows. Order two is the lowest possible order. It gives us a curve made up of straight Lines connecting the control polygon.
Using a GenerativeComponents BSplineCurve Feature with the construction method ByPoles interprets the point inputs as points of the control polygon. Using the ByPointsOnCurve constructs an underlying control polygon such that the BSplineCurve fits through the fit points. In most cases the ByPoles method is the preferable method as the resultant curve is more light weight and predictable and it is possible to control the order of the curve explicitly.
BSplineCurves of different orders and different number of control points. The Order of a BSplineCurve is directly related to the degree of the curve. The number of control points equals the highest possible order of the curve for the simplest curve with a control polygon of two points the order is therefore two as well. The degrees of a curve is always one lower than the order of the curve. With higher counts of control points it is possible to create curves with lower orders than the maximum possible.
The top curve demonstrates three different possible BSplineCurves using four Control points.
The green one curve is of order two, and therefore equals the control polygon or the polyline connecting all the control points in sequence.
The white curve is the next higher order curve, order three.
The turquoise curve, which is the smoothest and the furthest away from the control polygon is of the highest order (order 4) for this number of control points. Therefore the higher the order of a curve the smoother the curve is and the more complex the underlying mathematical equation required in its description. It is good practice to keep the order of curves low as possible even if the control point count is higher so as to keep the curve lightweight and predictable in its behavior. Choosing a lower order curve allows for more localized control over the curve close to the point that is being moved. This is important in complex geometry as small changes in one area in high order curves tend to affect the entire curve construct.
A BSpline surface can be defined by a rectangular network of control polygons following the same principles as the BSpline curve. Computationally the construction follows a nested principle where the control polygons of the curves defining the surface in one direction define a set of BSpline curves and the control polygons of the second direction are defined by connecting equivalent poles from the first set of control polygons. This defines all points of the surface by U and V parameter.