From 82ff9045821101184129bffdc6b70e4cce3b4c63 Mon Sep 17 00:00:00 2001 From: Christoph Wintersteiger Date: Tue, 16 Sep 2014 16:38:30 +0000 Subject: [PATCH] new functions added --- python/init_geom2d.py | 99 +++++++++++++++++++++++++++++++------------ 1 file changed, 72 insertions(+), 27 deletions(-) diff --git a/python/init_geom2d.py b/python/init_geom2d.py index 4e0f528e..92a6d5e8 100644 --- a/python/init_geom2d.py +++ b/python/init_geom2d.py @@ -10,45 +10,90 @@ def mydir(x=None): def execfile(fname): exec(open(fname).read()) + +import matplotlib.pyplot as plt def plotgeom(self): + if plotgeom.plot: + plt.close() + coords = self.PlotData() - import matplotlib.pyplot as plt - plt.plot(coords[2],coords[3]) + for i in range(0,len(coords[2])): + plt.plot(coords[2][i],coords[3][i],color='b') + plt.axis('equal') plt.xlim(coords[0]) plt.ylim(coords[1]) + plotgeom.plot = True plt.show(block=False) -def plotpointindex(self): - pi = self.PointData() - import matplotlib.pyplot as plt - for i in range(0,len(pi[0])): - plt.text(pi[0][i],pi[1][i],str(pi[2][i])) +plotgeom.plot = False + +def plotpointindex(self,show = True): + if show: + if len(plotpointindex.txt) == 0: + pi = self.PointData() + for i in range(0,len(pi[0])): + plotpointindex.txt.append(plt.text(pi[0][i],pi[1][i],str(pi[2][i]))) + plotpointindex.txt.append(plt.plot(pi[0][i],pi[1][i],'ro')) + else: + pass + else: + for i in range(0,len(plotpointindex.txt)): + try: + plotpointindex.txt[i].remove() + except: + plotpointindex.txt[i][0].remove() + plotpointindex.txt.clear() + #plt.draw() + plt.show(block=False) + +plotpointindex.txt = list() + +def plotdomainindex(self, show = True): + if show: + if len(plotdomainindex.txt) == 0: + segdata = self.SegmentData() + for i in range(0,len(segdata[0])): + if segdata[0][i][2]: + horr = 'right' + horl = 'left' + else: + horr = 'left' + horl = 'right' + if segdata[0][i][3]: + vertr = 'top' + vertl = 'bottom' + else: + vertr = 'bottom' + vertl = 'top' + plotdomainindex.txt.append(plt.text(segdata[0][i][0],segdata[0][i][1],str(segdata[2][i]),horizontalalignment=horl,verticalalignment=vertl)) + plotdomainindex.txt.append(plt.text(segdata[1][i][0],segdata[1][i][1],str(segdata[3][i]),horizontalalignment=horr,verticalalignment=vertr)) + else: + pass + else: + for i in range(0,len(plotdomainindex.txt)): + plotdomainindex.txt[i].remove() + plotdomainindex.txt.clear() + #plt.draw() plt.show(block=False) -def plotdomainindex(self): - segdata = self.SegmentData() - import matplotlib.pyplot as plt - for i in range(0,len(segdata[0])): - if segdata[0][i][2]: - horr = 'right' - horl = 'left' - else: - horr = 'left' - horl = 'right' - if segdata[0][i][3]: - vertr = 'top' - vertl = 'bottom' - else: - vertr = 'bottom' - vertl = 'top' - - plt.text(segdata[0][i][0],segdata[0][i][1],str(segdata[2][i]),horizontalalignment=horl,verticalalignment=vertl) - plt.text(segdata[1][i][0],segdata[1][i][1],str(segdata[3][i]),horizontalalignment=horr,verticalalignment=vertr) - plt.show(block=False) +plotdomainindex.txt = list() +from nglib.meshing import * +from nglib.geom2d import * + +SplineGeometry.Plot = plotgeom +SplineGeometry.ShowPoints = plotpointindex +SplineGeometry.ShowDomains = plotdomainindex + +def Line(point_index1,point_index2): + return ["line",point_index1,point_index2] + +def Spline3(point_index1,point_index2,point_index3): + return ["spline3",point_index1,point_index2,point_index3] + def startConsole(): import code try: