一、三维场景
二、摄像机
可以通过移动摄像机来实现物体的缩放
系统会默认生成一个摄像机
1.自定义摄像机初始化
//設置攝像機
#include <vtkCamera.h>
//獲取係統的攝像機
vtkCamera* camera = renderer->GetActiveCamera();
//设置焦点(摄像机对准的点)
camera->SetFocalPoint(0, 0, 0);
//设置摄像机的位置
camera->SetPosition(0, 0, 5);
//选定焦点之后,摄像机的观察方向(x为1的地方设为上方)
camera->SetViewUp(1, 0, 0);
2.比例变换
//比例变换(缩小为原来的一半)
camera->Zoom(0.5);
3.旋转操作
(1)竖直方向的旋转
//旋转操作(在竖直方向旋转60度)
camera->Elevation(60);
(2)水平方向的旋转
//旋转操作(在水平方向进行旋转)
camera->Azimuth(60);
4.重置摄像机至默认视角
//重置摄像机至默认视角
renderer->ResetCamera();
5.总结
三、光源
VTK把光源封装在了vtkLight中
和camera不同,创建新光源需要设置一个智能指针,这是因为camera是系统已有的光源,无需 设置智能指针
//设置光源
#include <vtkLight.h>
//创建一个新的光源
vtkSmartPointer<vtkLight> light = vtkSmartPointer<vtkLight>::New();
//将摄像机的焦点导入到光源焦点中
light->SetFocalPoint(camera->GetFocalPoint());
//设置光源所在位置
light->SetPosition(0, 1, 0);
//设置光源颜色
light->SetColir(1,0,0);
//将光源添加进渲染器中
renderer->AddLight(light);
总结:
四、三维物体
VTK中使用vtkProp3D来描述三维物体
五、总结
(补充)设置圆锥分辨率:
cone->SetResolution(20);