Knot Vector Generator

The knotvector module provides utility functions related to knot vector generation and validation.

Function Reference

geomdl.knotvector.generate(degree, num_ctrlpts, **kwargs)

Generates an equally spaced knot vector.

It uses the following equality to generate knot vector: m = n + p + 1

where;

  • p, degree
  • n + 1, number of control points
  • m + 1, number of knots

Keyword Arguments:

  • clamped: Flag to choose from clamped or unclamped knot vector options. Default: True
Parameters:
  • degree (int) – degree
  • num_ctrlpts (int) – number of control points
Returns:

knot vector

Return type:

list

geomdl.knotvector.normalize(knot_vector, decimals=18)

Normalizes the input knot vector to [0, 1] domain.

Parameters:
  • knot_vector (list, tuple) – knot vector to be normalized
  • decimals (int) – rounding number
Returns:

normalized knot vector

Return type:

list

geomdl.knotvector.check(degree, knot_vector, num_ctrlpts)

Checks the validity of the input knot vector.

Please refer to The NURBS Book (2nd Edition), p.50 for details.

Parameters:
  • degree (int) – degree of the curve or the surface
  • knot_vector (list, tuple) – knot vector to be checked
  • num_ctrlpts (int) – number of control points
Returns:

True if the knot vector is valid, False otherwise

Return type:

bool