code: def lines_intersection(xy1, xy2, xy3, xy4):
      """
      Returns the intersection of two lines.
  
      """
      (x1, y1) = xy1
      (x2, y2) = xy2
      (x3, y3) = xy3
      (x4, y4) = xy4
      b = (x2 - x1, y2 - y1)
      d = (x4 - x3, y4 - y3)
      det = b[0] * d[1] - b[1] * d[0]
      if det == 0:
          return None
      c = (x3 - x1, y3 - y1)
      t = float(c[0] * b[1] - c[1] * b[0]) / (det * 1.0)
      if t < 0.0 or t > 1.0:
          return None
      t = float(c[0] * d[1] - c[1] * d[0]) / (det * 1.0)
      if t < 0.0 or t > 1.0:
          return None
      x = x1 + t * b[0]
      y = y1 + t * b[1]
      return (x, y)
  
file_path: pygraphistry/graphistry/layout/utils/geometry.py
imports: from numpy import array, cos, sin
  from math import atan2, sqrt
label_desc: Use image node_id 1 for calling a global function with example usage: lines_intersection(xy1, xy2, xy3, xy4) and returns: x,  y, None, None, None