Distancia entre punto y segmento
¿Cómo calcular la distancia entre un punto `P` y el segmento acotado por los puntos `A` y `B`?

def distancia(A, B, P):
    if all(A==P) or all(B==P):
        return 0

    elif np.arccos(np.dot((P-A)/norm(P-A), (B-A)/norm(B-A))) > np.pi/2:
        return norm(P-A)

    elif np.arccos(np.dot((P-B)/norm(P-B), (A-B)/norm(A-B))) > np.pi/2:
        return norm(P-B)

    return norm(np.cross(B-A, A-P))/norm(B-A)