code: def rotate_pt(x_arr, y_arr, theta_deg, xoff=0, yoff=0):
      
      # TODO: use opencv acceleration if available
      a_arr = x_arr - xoff
      b_arr = y_arr - yoff
      cos_t = np.cos(np.radians(theta_deg))
      sin_t = np.sin(np.radians(theta_deg))
      ap = (a_arr * cos_t) - (b_arr * sin_t)
      bp = (a_arr * sin_t) + (b_arr * cos_t)
      return np.asarray((ap + xoff, bp + yoff))
docs: Rotate an array of points (x_arr, y_arr) by theta_deg offsetted
      from a center point by (xoff, yoff).