我们学习vtk.js的时候必然要了解到相机相关的知识,因为它是基于相机的原理去渲染相关的;
在vtk中我们会用到
import vtkCamera from 'vtk.js/Sources/Rendering/Core/Camera'
const camera = vtkCamera.newInstance();
我们打印一下camera设置值有如下信息
我们打印一下相应的数据后得到
从打印中我们看到,焦点原始为(0,0,0);
向上方向(0,1,0)
视角默认为30度
初始位置为(0,0,1)
然后我们就可以根据初始值适当的去设置我们所需要关于相机信息的值
附带其他信息
SetViewUp设置相机向上的方向,视角位置 Position观察对象位置,参数为x,y,z FocalPoint焦点,参数为x,y,z ComputeViewPlaneNormal(); //重置视平面法向,基于当前的位置和焦点。否则会出现斜推剪切效果 设置相机照摄方向的最近端和最远端切片距离 SetClippingPlane(0.0475572, 2.337786); //参数分别为沿着视向的近、远剪切面的距离; Zoom放大对象 SetViewAngle设置摄像机的视角,默认角度为30度,通常完美视角计算=2*atan((h/2)/d) ,h是renderwindow的高度,d是眼睛到屏幕的距离。 Azimuth(150)//表示 camera 的视点位置沿顺时针旋转 150 度角 Elevation(60)// 表示 camera 的视点位置沿向上的方面旋转 60 度角 ParallelProjectionOn()开启平行/正交投影。此时需通过SetParallelScale()方法控制角色物体的缩放。Zoom不再有效。
camera.setParallelProjection(true);//设置共同投影,不会随窗口变动而变动(这个设置很关键)