Pythonでコーディングされ、ODE(Open Dynamics Engine)に基づくシミュレーターを作成しています。視覚化のために私はVTKを選びました。
シミュレーション内のすべてのオブジェクトに対して、対応するソース(vtkCubeSourceなど)、マッパー、およびアクターを作成します。オブジェクトを正しく表示し、シミュレーションの実行中にオブジェクトを更新することができます。
基準点を持ち、各軸の方向を示す軸を追加したいと思います。そうすることで、デフォルトでは、XとZが画面の平面内にあり、Yが外側を向いていることに気付きました。私のプログラムでは、別の慣習があります。
私は2つの方法で軸を表示することができました:
1)画像
axes = vtk.vtkAxes()
axesMapper = vtk.vtkPolyDataMapper()
axesMapper.SetInputConnection(axes.GetOutputPort())
axesActor = vtk.vtkActor()
axesActor.SetMapper(axesMapper)
axesActor.GetProperty().SetLineWidth(4)
2)画像(最初のケースと色が一致しません)
axesActor = vtk.vtkAxesActor()
axesActor.AxisLabelsOn()
axesActor.SetShaftTypeToCylinder()
axesActor.SetCylinderRadius(0.05)
2つ目では、ユーザーは軸の表示方法に関連する多くのパラメーターを設定できます。最初のものでは、線幅を設定することしかできませんでしたが、それ以外は何も設定しませんでした。
だから、私の質問は次のとおりです。
- 3Dシーンで軸を定義して表示する正しい方法はどれですか?私はそれらを固定された位置と向きにしたいだけです。
- 軸の表示と一般的な視覚化の両方について、軸の方向に異なる規則を設定するにはどうすればよいですか?