2011-10-18 14 views
2

私はPythonでコード化され、ODE(Open Dynamics Engine)に基づいたシミュレータを作成しています。視覚化のために私はVTKを選択しました。3Dシーンでの軸の使用方法と設定方法

シミュレーションのすべてのオブジェクトについて、対応するソース(例:vtkCubeSource)、マッパー、およびアクタを作成します。シミュレーションが実行されると、オブジェクトを正しく表示して更新できます。

基準点を持つように軸を追加し、各軸の方向を表示したいと考えています。デフォルトでは、XとZは画面の平面にあり、Yは外側を指しています。私のプログラムでは、私は別の大会を持っています。

私は2通りの方法で軸を表示することができました:

1)Image

axes = vtk.vtkAxes() 
axesMapper = vtk.vtkPolyDataMapper() 
axesMapper.SetInputConnection(axes.GetOutputPort()) 
axesActor = vtk.vtkActor() 
axesActor.SetMapper(axesMapper) 
axesActor.GetProperty().SetLineWidth(4) 

2)Image(色は最初のケースと一致していない)

axesActor = vtk.vtkAxesActor() 
axesActor.AxisLabelsOn() 
axesActor.SetShaftTypeToCylinder() 
axesActor.SetCylinderRadius(0.05) 

第2の方法では、ユーザは、軸の表示方法に関連する多くのパラメータを設定することができる。最初のものでは、私は線幅を設定することしかできませんでしたが、それ以外は何もしませんでした。

だから、私の質問は以下のとおりです。

  • 3Dシーン内の軸を定義し、表示するための正しい方法はどれ?私はちょうど固定された位置と方向にそれらをしたい。
  • 表示と一般的な視覚化の両方のために、軸の向きに異なる規約を設定するにはどうすればよいですか?

答えて

1

さてあなたは、ディスプレイ の目的のために、オブジェクトの変換行列と混乱しない場合、おそらく使用して軸が を調整する2.簡単な方法に近づきながら、ちょうど 異なる位置にカメラを置くのに十分な可能性がありカメラの位置は、ピッチ()、方位()、ロール()です。

オブジェクト変換を混乱させる場合は、 軸に同じ変換を適用します。


DženanZukićがこの質問に[email protected]メールリストで親切に答えました。 http://www.vtk.org/pipermail/vtkusers/2011-November/119990.html

関連する問題