VTKActor 在渲染后不可见,但在摄像机>重置视图() 上可见
VTKActor not visible after render but visible on camera->resetview()
我正在做一个qt-vtk项目。我们有一个划线功能。其中在两个鼠标点击位置之间创建直线。但一旦演员被创造出来,它就不可见了。在添加actor之后,我调用了render函数。但它没有起作用。但如果我使用camera->resetview(),线条会变得可见,但整个视角会发生变化。我哪里做错了?
谢谢Rwik
这可能与您无关,但我(在ActiViz[托管VTK]中)遇到了完全相同的问题,并与之争论了一周,所以我希望这能帮助到其他人。事实证明,我们想在画布上画的线的位置有问题;它们离相机太远(在Z轴上)而看不见。
对我们来说,我们试图在用户点击的任何地方的查看区域上画一个十字。数据点和演员等等都在那里,但只有当你调用resetCamera()并更改相机的配置时,它们才会在场景中可见。最初,我指责我们必须添加到cirvumvent的自定义交互程序——默认交互程序对MouseUp事件的吞咽(预期行为)。调查显示,这似乎不太可能。
在这之后,我把责任转移到了相机上,怀疑重置调用可能是在调用某种我不知道的更新方法。我调用了resetCamera(),然后将相机值恢复到最初的值。当这项工作成功完成时,十字架会在相机缩小时出现,然后在相机后退时再次消失,就在这一点上,我意识到这与场景有关。
在这一点上,我检查了我们用于在3D中检索鼠标位置的方法,并意识到z值是巨大的,它将点放置得太远,这是VTK将控件上的2D位置转换为场景中的3D位置的方法的副产品,反之亦然。
因此,在所有这些之后,一个非常普通且可以避免的错误源于方法渲染器。DisplayToWorld()和WorldToDisplay()。这可能不是每个人的问题,但我希望我能让某人少花一周时间摆弄VTK。
如果没有看到代码,我认为这有点难以帮助,但您是否尝试过使用
ui->qvtkwidget->update();
,其中ui是从QMainWindow派生的类的实例?
- 如何在选项卡视图Qt中设置一个新项目,并保存以前的项目
- 视图中的参数推导失败:take_while
- 如何维护资源管理器项目视图中当前可见的项目列表
- EASTL矢量<向量<int>>连续的
- 在另一个类视图中添加最多2个图表的正确方法是什么
- OpenVR:向视图方向移动
- 使用 WIN32 API (C/C++) 对特定树视图项进行着色
- 将所选值(通过视图)从 boost::multi_array 复制到另一个数组 (C++)
- 如何在不使用滚动条的情况下使视图更改
- 列表视图更改选择颜色
- Qt - QVector 和模型视图 - 从列表视图获取自定义类的最佳方法是什么?
- 在 Qml 中从 QSqlTableModel 中删除单行时视图不一致
- 如何从未知视图中声明范围::v3::View 变量
- 控制带有信号/插槽的Qt QML滑动视图
- 列表视图项的替代颜色
- 带有 GDB 调试器的 VS 代码内存视图
- 如何将到达图形视图右侧(末端)的QGraphicsPixmapItem移动到左侧(开始)侧(就像在贪吃蛇游戏中发生的事情
- 从资源视图访问对话框时出现问题
- 范围修剪视图实现不适用于反向视图
- 从函数返回范围视图时,带有std::span:中间对象所有权的C++Ranges-v3