def psets_vertices(pwa): vs = [] for l in pwa.states: if l == synth.PWASystem.OUT: continue pset = pwa.eqs[l].pset cents = [centroid(p)[4:] for p in pset.components()] verts = [vrep_pts(p)[:,4:].tolist() for p in pset.components()] verts = [ sorted(v, key=lambda p: math.atan2(p[1]-cent[1],p[0]-cent[0])) for v, cent in zip(verts, cents)] vs.append(verts) return vs
def centroid(m): return np.average(vrep_pts(m), axis=0).tolist()