vtkCamera

vtkCamera用于控制视图不同的显示效果,比如旋转视图、缩放以及透视效果

1.位置和方向:

  • vtkCamera 允许设置相机的具体位置、目标点(即相机朝向的中心)以及上方向。这三个参数共同决定了相机的视角。
  • 使用 SetPosition() 方法设置相机位置。
  • 使用 SetFocalPoint() 设置相机的目标点。
  • 使用 SetViewUp() 方法设置相机的上方向(通常是 Y 轴),即最终渲染图像中,垂直向上的方向指向哪里

2.视野和剪切平面:

  • 通过设置视角(视野)来控制相机所看到的场景范围。使用 SetViewAngle() 方法来设定视角。
  • 定义近剪切平面和远剪切平面,这两个平面决定了渲染时哪些物体在视野内。使用 SetClippingRange() 方法设置这两个剪切平面。

3.投影模式:

  • vtkCamera 支持两种投影模式:透视投影和正交投影。通过 SetParallelProjection() 方法可以设置是否启用正交投影。

4.控制视图的更新:

  • vtkRender的ResetCamera方法让物体始终以最佳大小完整地呈现在窗口中
  • 每当相机属性改变时,可以调用 GetRenderWindow()->Render() 来更新渲染窗口,确保视图按照新的相机设置进行渲染。

相关概念对照:

  • Position:相机位置(眼睛在哪里)
  • FocalPoint:焦点(看向哪里)
  • ViewUp:头顶位置
cpp 复制代码
vtkCamera* cam = m_renderer->GetActiveCamera();
cam->SetViewUp(0,0,1);//这是一个指向 Z 轴正方向的单位向量(X=0, Y=0, Z=1)
m_renderer->ResetCamera();
m_renderWindow->Render()
相关推荐
Lhan.zzZ12 小时前
QML 组件库:VS2022 + Qt 静态库方案
开发语言·c++·qt·visual studio
skr爱码士19 小时前
15_国际化和本地化:tr()、ts 文件、QM 文件、多语言切换
c++·qt·ui·客户端
Quz20 小时前
QML 拖拽篇:看板拖拽与数字拼图
qt
长友cy21 小时前
Qt官方示例Application源码阅读
开发语言·qt
程与留2 天前
15_国际化和本地化:tr()、ts 文件、QM 文件、多语言切换
c++·qt
程与留2 天前
14_Qt 样式表(QSS)入门(语法、选择器、美化实战)
c++·qt
Quz2 天前
QML 拖拽篇:接收拖拽与数据交换
qt
张人玉3 天前
基于 Python 机器学习 与 PyQt5 桌面框架开发的可视化分析系统——基于大数据的网上购物消费行为分析可视化大屏
python·qt·机器学习·echarts·three.js
「QT(C++)开发工程师」3 天前
C++11 std::unique_ptr — 独占所有权的智能指针
c语言·开发语言·c++·qt
小镇敲码人3 天前
【深入浅出】之Qt 事件系统实战:鼠标、键盘、滚轮、窗口与定时器事件
数据库·qt·网络协议·mysql·http