首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在三维场景中使用和设置轴

如何在三维场景中使用和设置轴
EN

Stack Overflow用户
提问于 2011-10-18 16:31:32
回答 1查看 2.5K关注 0票数 2

我正在创建一个用python编写并基于ODE ()的模拟器。为了可视化,我选择了VTK。

对于仿真中的每个对象,我创建了相应的源(例如vtkCubeSource)、映射器和参与者。我能够正确地显示对象并在模拟运行时更新它们。

我想添加轴,以有一个参照点,并显示每个轴的方向。这样做,我意识到,在默认情况下,X和Z在屏幕的平面上,Y点向外。在我的节目里,我有一个不同的会议。

我可以用两种方式显示轴:

1) 图像

代码语言:javascript
复制
axes = vtk.vtkAxes()
axesMapper = vtk.vtkPolyDataMapper()
axesMapper.SetInputConnection(axes.GetOutputPort())
axesActor = vtk.vtkActor()
axesActor.SetMapper(axesMapper)
axesActor.GetProperty().SetLineWidth(4)

2) 图像 (颜色与第一种情况不匹配)

代码语言:javascript
复制
axesActor = vtk.vtkAxesActor()
axesActor.AxisLabelsOn()
axesActor.SetShaftTypeToCylinder()
axesActor.SetCylinderRadius(0.05)

在第二种情况下,允许用户设置与轴的显示方式相关的许多参数。在第一种情况下,我只设置了线宽,而没有其他任何设置。

所以,我的问题是:

  • 在三维场景中定义和显示轴的正确方法是哪种?我只想让他们在固定的位置和方向。
  • 如何为轴的方向设置不同的约定,既可用于显示,也可用于一般的可视化?
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-11-11 20:33:49

好吧,如果你不为了显示的目的而弄乱物体的变换矩阵,在使用轴方法2的时候,仅仅把你的相机放在一个不同的位置就足够了。调整相机位置的简单方法有:俯仰(),方位()和滚()。

如果您处理对象转换,那么对轴应用相同的转换。

D vtkusers@vtk.orgženan Zukić在ž邮件列表中回答了这个问题。http://www.vtk.org/pipermail/vtkusers/2011-November/119990.html

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7810632

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档