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()
相关推荐
用户805533698031 天前
不止三件套:QObject 属性系统全关键字与运行时反射!
c++·qt
xcyxiner1 天前
DicomViewer (vcpkg Windows和ubuntu编译)7
qt
Quz6 天前
QML Hello World 入门示例
qt
xcyxiner9 天前
DicomViewer (dcmtk读取dcm文件)5
qt
xcyxiner10 天前
DicomViewer (后台线程处理文件)4
qt
xcyxiner10 天前
DicomViewer (添加模型类)3
qt
xcyxiner11 天前
DicomViewer (目录调整) 2
qt
xcyxiner11 天前
dcmtk vtk vtk-dicom(gdcm) 编译(debug) v2
qt
桥田智能13 天前
桥田智能 QT-650S:面向白车身焊装的 800kg 重载快换解决方案
开发语言·qt·系统架构
森G13 天前
75、服务器源码解析---------云视频服务项目
linux·服务器·网络·c++·qt