我正在创建一个用python编码并基于ODE(Open Dynamics Engine)的模拟器。为了可视化,我选择了VTK。
对于模拟中的每个对象,我创建了一个相应的源(例如vtkCubeSource),mapper和actor。我能够正确显示对象并在模拟运行时更新它们。
我想添加轴以获得参考点并显示每个轴的方向。这样做我意识到,默认情况下,X和Z位于屏幕平面,Y指向外。在我的课程中,我有不同的约定。
我已经能够以两种方式显示轴:
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)
在第二个中,允许用户设置许多与轴如何显示相关的参数。在第一个中,我只设法设置线宽,但没有别的。
所以,我的问题是:
答案 0 :(得分:1)
好吧,如果你没有弄乱对象的变换矩阵进行显示 目的,将你的相机放入一个可能就足够了 使用轴方法时的不同位置2.简单的调整方法 你的相机位置是:Pitch(),Azimuth()和Roll()。
如果您搞乱了对象变换,那么将相同的变换应用于 轴。
DženanZukić在vtkusers@vtk.org邮件列表中回答了这个问题。 http://www.vtk.org/pipermail/vtkusers/2011-November/119990.html