2013-10-02 4 views
1

КРАТКИЙ ВОПРОС: Я хотел бы нарисовать разные формы с помощью крылатого egde strucutre, поэтому у меня есть один класс, который на самом деле рисует любой крылатый eged, а другой - для определения куба и других фигур. Теперь я хочу нарисовать 2 куба на одной фигуре, но я не могу, и я всегда получаю один куб на каждой фигуре.несколько объектов на одном и том же участке (MATPLOTLIB)

LONG ВОПРОС: Я хотел бы рисовать различные фигуры с помощью крылатой Egde strucutre, поэтому у меня есть:

class WEdge -> wedge_instance = WEdge(vertices, faces) 

, а затем у меня есть один класс для каждой формы, что мне нужно сделать, например:

class Box -> simplebox = Box(vertices, faces, translation, rotation) 

в классе клина я на самом деле сюжет объектов, используя следующий код:

 ax = a3.Axes3D(pl.figure()) 
     for k in range(self.nFaces): 
      currentColumn = self.faces[k,:] 
      vtx = np.zeros([4,3]) 
      j = 0 
      for i in currentColumn: 
       vtx[j] = self.vertices[i-1] 
       j = j +1 
     tri = a3.art3d.Poly3DCollection([vtx]) 
     tri.set_color(colors.rgb2hex(sp.rand(3))) 
     tri.set_edgecolor('b') 
     ax.add_collection3d(tri) 

Проблема в том, когда я хочу нарисовать два куба на том же рисунке. Я перепробовал много возможных комбинаций удержания, GCA и так далее, но в конце концов, я всегда один кубик на рисунке 1, а другой на рисунке 2.

Пример:

>>>Box(3,1,3, [0,1,0], np.eye(3)) 
>>> # hold, gca, timer... 
>>>Box(3,1,3, [1,0,3], np.eye(3)) 

Box(3,1,3, [0,1,0], np.eye(3)Box(3,1,3, [1,0,3], np.eye(3)

ответ

2

не определить новую ось для каждого "структуры":

ax = a3.Axes3D(pl.figure()) 

Pass ax в WEdge класс, так что все они могут сделать на одной оси:

def init(self, ..., ax=None): 
    self.ax = ax if ax else a3.Axes3D(pl.figure()) 

we1 = WEdge() 
we2 = WEdge(ax=we1.ax) 

или, возможно, более эгалитарной,

ax = a3.Axes3D(pl.figure()) 
we1 = WEdge(ax) 
we2 = WEdge(ax) 

Вы, возможно, потребуется также передать ax к классу куба тоже.

+0

простой, прозрачный, рабочий..небольшой ответ спасибо! – JAWE

Смежные вопросы