code: def sidePoint(Apoint, Bpoint, h, w, placehold, enlarge_size):
      K, B = lineBiasAndK(Apoint, Bpoint)
      angle = abs(math.atan(pointAngle(Apoint, Bpoint)))
      distance = pointDistance(Apoint, Bpoint)
  
      x_enlarge_size, y_enlarge_size = enlarge_size
  
      XaxisIncreaseDistance = abs(
          math.cos(angle) * x_enlarge_size * distance
      )
      YaxisIncreaseDistance = abs(
          math.sin(angle) * y_enlarge_size * distance
      )
  
      if placehold == "leftTop":
          x1 = max(0, Apoint[0] - XaxisIncreaseDistance)
          y1 = max(0, Apoint[1] - YaxisIncreaseDistance)
      elif placehold == "rightTop":
          x1 = min(w, Bpoint[0] + XaxisIncreaseDistance)
          y1 = max(0, Bpoint[1] - YaxisIncreaseDistance)
      elif placehold == "rightBottom":
          x1 = min(w, Bpoint[0] + XaxisIncreaseDistance)
          y1 = min(h, Bpoint[1] + YaxisIncreaseDistance)
      elif placehold == "leftBottom":
          x1 = max(0, Apoint[0] - XaxisIncreaseDistance)
          y1 = min(h, Apoint[1] + YaxisIncreaseDistance)
      return int(x1), int(y1)
  
imports: import math
  import numpy
label_desc: Use image node_id 5 for calling a global function with example usage: sidePoint(Apoint, Bpoint, h, w, placehold, enlarge_size) and returns: int,  int