code: def rotatePoint(self, p, theta):
      order = p - self.center
      cosTheta = math.cos(theta)
      sinTheta = math.sin(theta)
      pResx = cosTheta * order.x() + sinTheta * order.y()
      pResy = -sinTheta * order.x() + cosTheta * order.y()
      pRes = QPointF(self.center.x() + pResx, self.center.y() + pResy)
      return pRes
  
imports: import math
  import sys
  from PyQt5.QtCore import QPointF
  from PyQt5.QtGui import QColor, QPen, QPainterPath, QFont
  from libs.utils import distance
label_desc: Use image node_id 3 for calling the Shape obj's underlying member method code with example usage: obj.rotatePoint(p, theta) and returns: pRes