docs: def get_components(self, other):
          """ Break this vector into one vector that is perpendicular to the 
          given vector and another that is parallel to it. """
          tangent = self.get_projection(other)
          normal = self - tangent
          return normal, tangent