Elist = list(range(len(E))) Elist.sort(key=lambda i:util.edgeLength(V,E,i),reverse=True) # create edge-to-triangle and triangle-to-edge lists EtoF = [[] for j in range(len(E))] FtoE = [[] for j in range(len(F))] for f in range(len(F)): v = F[f] util.pushEtoFandFtoE(EtoF,FtoE,E,f,v[0],v[1]) util.pushEtoFandFtoE(EtoF,FtoE,E,f,v[0],v[2]) util.pushEtoFandFtoE(EtoF,FtoE,E,f,v[1],v[2]) V,E,F = list(V),list(E),list(F) # repeat densification for z in range(densifyN): util.densify(V,E,F,EtoF,FtoE,Elist) densifyV = np.array(V[-densifyN:]) x=densifyV[:,0] y=densifyV[:,1] z=densifyV[:,2] fig = plt.figure() ax = fig.add_subplot(111, projection='3d') ax.scatter(z, x, y, zdir='z', c= 'red') plt.savefig("demo.png") output_file= { "V": Vorig, "E": Eorig,
Vorig,Eorig,Forig = V.copy(),E.copy(),F.copy() # sort by length (maintain a priority queue) Elist = list(range(len(E))) Elist.sort(key=lambda i:util.edgeLength(V,E,i),reverse=True) # create edge-to-triangle and triangle-to-edge lists EtoF = [[] for j in range(len(E))] FtoE = [[] for j in range(len(F))] for f in range(len(F)): v = F[f] util.pushEtoFandFtoE(EtoF,FtoE,E,f,v[0],v[1]) util.pushEtoFandFtoE(EtoF,FtoE,E,f,v[0],v[2]) util.pushEtoFandFtoE(EtoF,FtoE,E,f,v[1],v[2]) V,E,F = list(V),list(E),list(F) # repeat densification for z in range(densifyN): util.densify(V,E,F,EtoF,FtoE,Elist) densifyV = np.array(V[-densifyN:]) scipy.io.savemat("{0}/{1}.mat".format(output_path,m),{ "V": Vorig, "E": Eorig, "F": Forig, "Vd": densifyV }) print("{0} done, time = {1:.6f} sec".format(m,time.time()-timeStart))