def direction_vector(self, angle):
        '''
        Returns a unit vector, pointing in the arc's movement direction at a given (absolute) angle (in degrees).
        No check is made whether angle lies within the arc's span (the results for angles outside of the arc's span )
        Returns a 2x1 numpy array.
        
        >>> a = Arc((0, 0), 1, 0, 90, True)
        >>> assert all(abs(a.direction_vector(0) - np.array([0.0, 1.0])) < tol)
        >>> assert all(abs(a.direction_vector(45) - np.array([ -0.70710678, 0.70710678])) < 1e-6)
        >>> assert all(abs(a.direction_vector(90) - np.array([-1.0, 0.0])) < tol)
        >>> assert all(abs(a.direction_vector(135) - np.array([-0.70710678, -0.70710678])) < 1e-6)
        >>> assert all(abs(a.direction_vector(-180) - np.array([0.0, -1.0])) < tol)
        >>> assert all(abs(a.direction_vector(-90) - np.array([1.0, 0.0])) < tol)
        >>> a = a.reversed()
        >>> assert all(abs(a.direction_vector(0) - np.array([0.0, -1.0])) < tol)
        >>> assert all(abs(a.direction_vector(45) - np.array([ 0.70710678, -0.70710678])) < 1e-6)
        >>> assert all(abs(a.direction_vector(90) - np.array([1.0, 0.0])) < tol)
        >>> assert all(abs(a.direction_vector(135) - np.array([0.70710678, 0.70710678])) < 1e-6)
        >>> assert all(abs(a.direction_vector(-180) - np.array([0.0, 1.0])) < tol)
        >>> assert all(abs(a.direction_vector(-90) - np.array([-1.0, 0.0])) < tol)
        '''
        a = angle + self.sign * 90
        a = a * np.pi / 180.0
        return np.array([np.cos(a), np.sin(a)])
Returns a unit vector, pointing in the arc's movement direction at a given (absolute) angle (in degrees).
        No check is made whether angle lies within the arc's span (the results for angles outside of the arc's span )
        Returns a 2x1 numpy array.
        
        >>> a = Arc((0, 0), 1, 0, 90, True)
        >>> assert all(abs(a.direction_vector(0) - np.array([0.0, 1.0])) < tol)
        >>> assert all(abs(a.direction_vector(45) - np.array([ -0.70710678, 0.70710678])) < 1e-6)
        >>> assert all(abs(a.direction_vector(90) - np.array([-1.0, 0.0])) < tol)
        >>> assert all(abs(a.direction_vector(135) - np.array([-0.70710678, -0.70710678])) < 1e-6)
        >>> assert all(abs(a.direction_vector(-180) - np.array([0.0, -1.0])) < tol)
        >>> assert all(abs(a.direction_vector(-90) - np.array([1.0, 0.0])) < tol)
        >>> a = a.reversed()
        >>> assert all(abs(a.direction_vector(0) - np.array([0.0, -1.0])) < tol)
        >>> assert all(abs(a.direction_vector(45) - np.array([ 0.70710678, -0.70710678])) < 1e-6)
        >>> assert all(abs(a.direction_vector(90) - np.array([1.0, 0.0])) < tol)
        >>> assert all(abs(a.direction_vector(135) - np.array([0.70710678, 0.70710678])) < 1e-6)
        >>> assert all(abs(a.direction_vector(-180) - np.array([0.0, 1.0])) < tol)
        >>> assert all(abs(a.direction_vector(-90) - np.array([-1.0, 0.0])) < tol)