2010-11-15 70 views
4

我有一個函數,它將在tkinter中用matplotlib繪製一個3D球體。然而,每當我將這個函數稱爲函數時,軌道球體的性能就會下降。此外,圖形只在我嘗試繞着球體軌道後更新。試圖用matplotlib更新3D圖形座標

self.A是一個調整球體大小的變量。

我的功能:

def draw_fig(self): 

     self.ax = Axes3D(self.fig) 

     u = numpy.linspace(0, 2 * numpy.pi, 100) 
     v = numpy.linspace(0, numpy.pi, 100) 
     x = self.A * numpy.outer(numpy.cos(u), numpy.sin(v)) 
     y = self.A * numpy.outer(numpy.sin(u), numpy.sin(v)) 
     z = self.A * numpy.outer(numpy.ones(numpy.size(u)), numpy.cos(v)) 

     t = self.ax.plot_surface(x, y, z, rstride=4, cstride=4,color='lightblue',linewidth=0) 

回答

4

你應該每次都無法再生的所有數據,而只是修改現有的一個。

編輯:剛纔搬出調用draw_fig軸建築規範

def __init__... 
    u = numpy.linspace(0, 2 * numpy.pi, 100) 
    v = numpy.linspace(0, numpy.pi, 100) 
    self.x = A * numpy.outer(numpy.cos(u), numpy.sin(v)) 
    self.y = A * numpy.outer(numpy.sin(u), numpy.sin(v)) 
    self.z = A * numpy.outer(numpy.ones(numpy.size(u)), numpy.cos(v)) 
    self.ax = Axes3D(self.fig) 

def draw_fig(self): 

     t = self.ax.plot_surface(self.x, self.y, self.z, rstride=4, cstride=4,color='lightblue',linewidth=0) 
+0

我怎麼會impliment這個的?也self.A是一個整數,可以是10或5. – rectangletangle 2010-11-15 03:14:09

+0

尼斯適合我!謝謝您的幫助。 – rectangletangle 2010-11-15 03:42:03

+0

+1用於提取計算 – 2010-11-15 03:42:37