短い質問: 私は winged egde 構造を使用してさまざまな形状を描画したいので、実際に翼のある eged を描画する 1 つのクラスと、立方体やその他の形状を定義する別のクラスがあります。今、同じ図に 2 つの立方体を描きたいのですが、できません。各図に常に 1 つの立方体を描画します。
長い質問: 翼のあるエッジ構造を使用してさまざまな形状を描画したいので、次のようにします。
class WEdge -> wedge_instance = WEdge(vertices, faces)
次に、たとえば、描画する必要がある図形ごとに 1 つのクラスがあります。
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)
問題は、同じ図形に 2 つの立方体を描きたい場合です。hold、gca などの可能な組み合わせを多数試しましたが、最終的には常に図 1 の 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))