私はpythonコードを使って任意のシステムの軌道の動きをシミュレートしています。いくつかのサークルの位置をアニメーション化するためにFuncAnimationを使用しています。可能な限り一般化しようとしているので、フレームごとに更新された異なるパッチの配列が良いアイデアだと思っていました。 1次TypeError: 'Circle'オブジェクトはインデックス作成をサポートしていません
# This class method is the core of the animation and how the different CelestialBodies interact.
def Animation(self,a):
for u in range(len(self.system)-1):
self.system[u].Position(self.system)
self.patches[u].center = (self.system[u].P[-1][0],self.system[u].P[-1][1])
return self.patches
# This is the main class method, which combines the rest of methods to run the animation.
def run(self):
# Create the axes for the animation
fig = plt.figure()
ax = plt.axes()
ax.axis('scaled')
ax.set_xlim(-self.max, self.max)
ax.set_ylim(-self.max, self.max)
# Create the patches and add them to the axes
self.patches = []
for q in range(len(self.system)-1):
self.patches.append(plt.Circle(plt.Circle((0,0), 695700000, color='black')))
ax.add_patch(self.patches[q])
# Call the animation and display the plot
anim = FuncAnimation(fig, self.Animation, init_func=self.init, frames=10, repeat=True, interval=1, blit=False)
plt.title("Solar System - Numerical Intregation Simulation")
plt.xlabel("Position in x (m)")
plt.ylabel("Position in y (m)")
plt.grid()
plt.show()
# Constructor for the animation
def init(self):
return self.patches
全体のトレースバックは、次のとおりです:ここでTypeError: 'Circle' object does not support indexing
アニメーション用のコードの一部です:
Traceback (most recent call last):
File "SolarSystem4.py", line 145, in <module> SolarSystem.run()
File "SolarSystem4.py", line 132, in run ax.add_patch(self.patches[q])
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/axes.py", line 1562, in add_patch
self._update_patch_limits(p)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/axes.py", line 1580, in _update_patch_limits
xys = patch.get_patch_transform().transform(vertices)
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/patches.py", line 1256, in get_patch_transform
self._recompute_transform()
File "/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/matplotlib/patches.py", line 1240, in _recompute_transform
center = (self.convert_xunits(self.center[0]),
TypeError: 'Circle' object does not support indexing
しかし、私はそれを実行するたびにこのエラーを取得しています
全体のトレースバックを投稿してください。 – leovp
あなたはそれを持っています。ありがとうございました。 –