Splitting and Decomposition¶
NURBS-Python is also capable of splitting the curves and the surfaces, as well as applying Bézier decomposition.
Splitting of curves can be achieved via operations.split_curve()
method.
For the surfaces, there are 2 different splitting methods, operations.split_surface_u()
for splitting
the surface on the u-direction and operations.split_surface_v()
for splitting on the v-direction.
Bézier decomposition can be applied via operations.decompose_curve()
and
operations.decompose_surface()
methods for curves and surfaces, respectively.
The following figures are generated from the examples provided in the Examples repository.
Splitting¶
The following 2D curve is split at u = 0.6
and applied translation by the tangent vector using
operations.translate()
method.

Splitting can also be applied to 3D curves (split at u = 0.3
) without any translation.

Surface splitting is also possible. The following figure compares splitting at u = 0.5
and v = 0.5
.

Surfaces can also be translated too before or after splitting operation. The following figure illustrates translation
after splitting the surface at u = 0.5
.

Multiple splitting is also possible for all curves and surfaces. The following figure describes multi splitting in
surfaces. The initial surface is split at u = 0.25
and then, one of the resultant surfaces is split at v = 0.75
,
finally resulting 3 surfaces.

Bézier Decomposition¶
The following figures illustrate Bézier decomposition capabilities of NURBS-Python. Let’s start with the most obvious
one, a full circle with 9 control points. It also is possible to directly generate this shape via geomdl.shapes
module.

The following is a circular curve generated with 7 control points as illustrated on page 301 of The NURBS Book
(2nd Edition) by Piegl and Tiller. There is also an option to generate this shape via geomdl.shapes
module.

The following figures illustrate the possibility of Bézier decomposition in B-Spline and NURBS surfaces.


The colors are randomly generated via utilities.color_generator()
function.