简短的问题:我想使用有翼的边缘结构绘制不同的形状,所以我有一个类实际上可以绘制任何有翼的边缘,另一个类用于定义立方体和其他形状。现在我想在同一个图形上绘制 2 个立方体,但我不能,而且我总是在每个图形中得到一个立方体。
长问题:我想用有翼的egde结构绘制不同的形状,所以我有:
class WEdge -> wedge_instance = WEdge(vertices, faces)
然后我为每个需要绘制的形状设置一个类,例如:
class Box -> simplebox = Box(vertices, faces, translation, rotation)
在 WEdge 类中,我实际上使用以下代码绘制对象:
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)
问题是当我想在同一个图中绘制两个立方体时。我尝试了许多可能的 hold、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))