网站建设服务器如何选择,企业官网网站优化公司,wordpress 黑镜主题,河北二级建造师考试最新消息一、vtkCamera相机 人眼相当于三维场景下的相机#xff0c; VTK是用vtkCamera类来表示三维渲染场景中的相机。vtkCamera负责把三维场景投影到二维平面#xff0c;如屏幕、图像等。 相机位置#xff1a;即相机所在的位置#xff0c;用方法vtkCamera::SetPosition()设置。
相…一、vtkCamera相机 人眼相当于三维场景下的相机 VTK是用vtkCamera类来表示三维渲染场景中的相机。vtkCamera负责把三维场景投影到二维平面如屏幕、图像等。 相机位置即相机所在的位置用方法vtkCamera::SetPosition()设置。
相机焦点用方法vtkCamera::SetFocusPoint()设置默认的焦点位置在世界坐标系的原点。
朝上方向即哪个方向为相机朝上的方向。就好比我们直立看东西方向为头朝上看到的东西也是直立的如果我们倒立看某个东西这时方向为头朝下看到的东西当然就是倒立的。相机位置、相机焦点和朝上方向三个因素确定了相机的实际方向即确定相机的视图。
投影方向相机位置到相机焦点的向量方向即为投影方向。
投影方法确定Actor是如何映射到像平面的。vtkCamera定义了两种投影方法一种是正交投影(OrthographicProjection)也叫平行投影(Parallel Projection)即进入相机的光线与投影方向是平行的。另一种是透视投影(PerspectiveProjection)即所有的光线相交于一点。
视角透视投影时需要指定相机的视角(View Angle)默认的视角大小为30º可以用方法vtkCamera::SetViewAngle()设置。
前后裁剪平面裁剪平面与投影方向相交一般与投影方向也是垂直的。裁剪平面主要用于评估Actor与相机距离的远近只有在前后裁剪平面之间的Actor才是可见的。裁剪平面的位置可以用方法vtkCamera::SetClippingRange()设置。
二、vtkCamera相机参数 void vtkCamera::SetViewUp(double vx, double vy, double vz);设置相机的朝上方向默认为(0, 1, 0) void vtkCamera::SetPosition(double x, double y, double z); 设置相机位置默认为(0, 0, 1) void vtkCamera::SetFocalPoint(double x, double y, double z);设置焦点默认为(0, 0, 0) void vtkCamera::SetClippingRange(double dNear, double dFar);设置前后裁剪平面位置默认为(0.1, 1000) void vtkCamera::SetViewAngle(double angle); 设置相机视角默认为30度如果为平行投影则该角度无效 void vtkCamera::ComputeViewPlaneNormal();根据设置的相机位置、焦点等信息重新计算视平面(View Plane)的法向量。一般该法向量与视平面是垂直的如果不是垂直的话Actor等看起来会有一些特殊的效果如错切。 用方法vtkRenderer::GetActiveCamera()获取vtkRenderer渲染器里默认的相机。 用方法vtkRenderer::SetActiveCamera()把相机设置到渲染场景中。 三、vtkCamera控制相机运动 vtkCamera::Dolly(double value); 将相机与焦点的距离除以给定的推拉值。使用大于1的值向焦点推拉使用小于1的值远离焦点推拉。 vtkCamera::Roll(double angle); 围绕投影方向旋转相机。这将使摄影机绕其轴旋转。 vtkCamera::Azimuth(double angle); 围绕以焦点为中心的视图向上矢量旋转相机。请注意视图向上矢量是通过SetViewUp设置的不一定垂直于投影方向。结果是相机的水平旋转纬度。 vtkCamera::Yaw(double angle); 使用相机的位置作为旋转中心围绕视图向上矢量旋转焦点。请注意视图向上矢量是通过SetViewUp设置的不一定垂直于投影方向。结果是场景的水平旋转纬度。 vtkCamera::Elevation(double angle); 使用焦点作为旋转中心围绕投影方向的负值与视图向上向量的叉积旋转相机。结果是场景的垂直旋转经度。 vtkCamera::Pitch(double angle); 使用相机的位置作为旋转中心围绕视图向上矢量和投影方向的叉积旋转焦点。结果是摄影机垂直旋转经度。 vtkCamera::Zoom(double factor); 在透视模式下将视角减小指定的因子。在平行模式下将平行比例减小指定的因子。值大于1表示放大值小于1表示缩小注意当UseExplicitProjectionTransformMatrix为true时将忽略此设置。 void ResetCamera(); 重置相机参数。 参考文献
VTK笔记-相机vtkCamera_vtk重置相机-CSDN博客
VTK相机参数_vtk camera默认参数-CSDN博客
VtkCamera总结_vtk体绘制相机-CSDN博客