(n)
return n, l, m
Returns 3 orthognal base vectors, the first one colinear to n.
Returns 3 orthognal base vectors, the first one colinear to n.
Returns 3 orthognal base vectors the first one colinear to n .
def base_vectors(n):
    """ Returns 3 orthognal base vectors, the first one colinear to n.
    """
    # normalize n
    n = n / np.sqrt(np.square(n).sum(axis=-1))

    # choose two vectors perpendicular to n
    # choice is arbitrary since the coil is symetric about n
    if abs(n[0]) == 1 :
        l = np.r_[n[2], 0, -n[0]]
    else:
        l = np.r_[0, n[2], -n[1]]

    l = l / np.sqrt(np.square(l).sum(axis=-1))
    m = np.cross(n, l)
    return n, l, m
def base_vectors ( n ) : # normalize n n = n / np . sqrt ( np . square ( n ) . sum ( axis = - 1 ) ) # choose two vectors perpendicular to n # choice is arbitrary since the coil is symetric about n if abs ( n [ 0 ] ) == 1 : l = np . r_ [ n [ 2 ] , 0 , - n [ 0 ] ] else : l = np . r_ [ 0 , n [ 2 ] , - n [ 1 ] ] l = l / np . sqrt ( np . square ( l ) . sum ( axis = - 1 ) ) m = np . cross ( n , l ) return n , l , m