vtk ライブラリを使用して、地震の動的マップを作成しています。
私はすでに静的なものを作成しました(ここを参照してください: https://github.com/yacobuk/QuakeCloudとここを参照してください: http://www.youtube.com/watch?v=4HVdTcI_ozI ) 基本的なアイデアが機能することを知っています、しかし今、私は時間をかけて地震を見せたいと思っています。
フレームを更新する方法とオブジェクトを追加/削除する方法を示すコード例がいくつかありますが、インスタンスをスピンアップし、数期間追跡してから削除する方法を理解することに行き詰まっています。
基本的な追加/削除コードは次のようになります。
for point_and_mag in pm.points_mag:
time.sleep(0.5)
mag = point_and_mag[1]
point = point_and_mag[0]
if mag > 2:
pointCloud = VtkPointCloud(pm)
pointCloud.addPoint(point, math.log(mag)*10)
renderer.AddActor(pointCloud.vtkActor)
renderer.ResetCamera()
renderWindow.Render()
time.sleep(0.3)
renderer.RemoveActor(pointCloud.vtkActor)
renderer.ResetCamera()
renderWindow.Render()
しかしもちろん、これは一度に 1 つのオブジェクトしか許可しません ( pointCloud.vtkActor
viaのインスタンスはrenderer.AddActor(pointCloud.vtkActor)
しばらく待ってから、renderer.RemoveActor(pointCloud.vtkActor)
多数のアクターを追加するにはどうすればよいですか (10 分の間隔を使用します。その間に最大 5 回の地震がありました)、カウンターでタグ付けし、ループの反復ごとにカウンターをインクリメントし、到達したときに5 回繰り返して、アクターを削除しますか?
この質問には、さらにいくつかのコンテキストがあります: Python/vtk - vtkPolyData オブジェクトで各ポイント サイズを個別に設定しますか?