code: def find_rotation(points_distorted, points_perfect):
      
      H = np.matmul(points_distorted.T, points_perfect)
      [U, S, Vt] = svd(H)
      rot = np.matmul(Vt.T, U.T)
      return rot
docs: This finds the rotation matrix that aligns the (distorted) set of points "points_distorted" with respect to the
      (perfect) set of points "points_perfect" in a least-square sense.
      :param points_distorted: List of points describing a given (distorted) polyhedron for which the rotation that
                               aligns these points in a least-square sense to the set of perfect points "points_perfect"
      :param points_perfect: List of "perfect" points describing a given model polyhedron.
      :return: The rotation matrix