code: def get_mst(points):
      
      graph = Graph()
      for point in points:
          graph.add_node(point)
      graph.generate_euclidean_edges()
      matrix = scipy.sparse.csgraph.minimum_spanning_tree(graph.w)
      mst = matrix.toarray().astype(int)
      # returned matrix is not symmetrical! make it symmetrical
      for i in range(len(mst)):
          for j in range(len(mst)):
              if mst[i][j] > 0:
                  mst[j][i] = mst[i][j]
              if mst[j][i] > 0:
                  mst[i][j] = mst[j][i]
      return mst
docs: Parameters
      ----------
      points : list of points (geometry.Point)
          The first element of the list is the center of the bounding box of the
          first stroke, the second one belongs to the seconds stroke, ...
  
      Returns
      -------
      mst : square matrix
          0 nodes the edges are not connected, > 0 means they are connected