def angle_between_3_XYZs(p1: mp.XYZ, p2: mp.XYZ, p3: mp.XYZ) -> float: """ return the angle between 3 points, in radians:w """ ba = p1.as_nparray() - p2.as_nparray() bc = p3.as_nparray() - p2.as_nparray() cosine_angle = np.dot(ba, bc) / (np.linalg.norm(ba) * np.linalg.norm(bc)) return np.arccos(cosine_angle)
def angle_between_3_XYZs( p1: mp.XYZ, p2: mp.XYZ, p3: mp.XYZ ) -> float: """ return the angle between 3 points, in radians:w """ ba = p1.as_nparray() - p2.as_nparray() bc = p3.as_nparray() - p2.as_nparray() cosine_angle = np.dot( ba, bc ) / ( np.linalg.norm( ba ) * np.linalg.norm( bc ) ) return np.arccos( cosine_angle )