Source code for splipy.utils.curve

__doc__ = 'Implementation of various curve utilities'

import numpy as np


[docs]def curve_length_parametrization(pts, normalize=False): """Calculate knots corresponding to a curvelength parametrization of a set of points. :param numpy.array pts: A set of points :param bool normalize: Whether to normalize the parametrization :return: The parametrization :rtype: [float] """ knots = [0.0] for i in range(1, pts.shape[0]): knots.append(knots[-1] + np.linalg.norm(pts[i,:] - pts[i-1,:])) if normalize: length = knots[-1] knots = [k/length for k in knots] return knots
[docs]def get_curve_points(curve): """Evaluate the curve in all its knots. :param curve: The curve :type curve: :class:`splipy.Curve` :return: The curve points :type: numpy.array """ return curve(curve.knots(0))