(obj, u, normalize)
return tuple(point), tuple(vector)
Evaluates the curve tangent vector at the given parameter value.

    The output returns a list containing the starting point (i.e. origin) of the vector and the vector itself.

    :param obj: input curve
    :type obj: abstract.Curve
    :param u: parameter
    :type u: float
    :param normalize: if True, the returned vector is converted to a unit vector
    :type normalize: bool
    :return: a list containing "point" and "vector" pairs
    :rtype: tuple
Evaluates the curve tangent vector at the given parameter value.
Evaluates the curve tangent vector at the given parameter value .
def tangent_curve_single(obj, u, normalize):
    """ Evaluates the curve tangent vector at the given parameter value.

    The output returns a list containing the starting point (i.e. origin) of the vector and the vector itself.

    :param obj: input curve
    :type obj: abstract.Curve
    :param u: parameter
    :type u: float
    :param normalize: if True, the returned vector is converted to a unit vector
    :type normalize: bool
    :return: a list containing "point" and "vector" pairs
    :rtype: tuple
    """
    # 1st derivative of the curve gives the tangent
    ders = obj.derivatives(u, 1)

    point = ders[0]
    vector = linalg.vector_normalize(ders[1]) if normalize else ders[1]

    return tuple(point), tuple(vector)
def tangent_curve_single ( obj , u , normalize ) : # 1st derivative of the curve gives the tangent ders = obj . derivatives ( u , 1 ) point = ders [ 0 ] vector = linalg . vector_normalize ( ders [ 1 ] ) if normalize else ders [ 1 ] return tuple ( point ) , tuple ( vector )