vtk对 camera 的操作方法如下
来源:互联网 发布:sql查询语句选取行 编辑:程序博客网 时间:2024/05/16 17:31
对 camera 的操作方法如下:
vtkCamera *aCamera = vtkCamera::New();
aCamera->SetViewUp (0, 0, -1);//设视角位置
aCamera->SetPosition (0, 1, 0);//设观察对象位
aCamera->SetFocalPoint (0, 0, 0);//设焦点
aCamera->ComputeViewPlaneNormal();//自动
aRenderer->SetActiveCamera(aCamera);
1.SetClippingPlane
设置相机照摄方向的最近端和最远端切片距离。感觉参数像是平行光投影到体数据上前面一片和最后一片的位置信息。(世界坐标系表示)渲染时好像把平面外的数据剪掉了。
2.SetFocalPoint /SetPosition
(世界坐标系),控制相机距离。
3.ComputeViewPlaneNormal
重置视平面法向,基于当前的位置和焦点。否则会出现斜推剪切效果。
4.SetViewUp
设置摄像机的向上的方向。
5.Zoom
通过改变视角的方法放大对象。
6.SetViewAngle
设置摄像机的视角,默认角度为30度,如果为平行投影则该角度无效。
通常完美视角计算=2*atan((h/2)/d) ,h是renderwindow的高度,d是眼睛到屏幕的距离。
OrthogonalizeViewup()--设置正交角度。
7.修改摄像机位置
设置好焦点后通过Azimuth()修改方位角和Elevation()修改摄像机位置。使摄像机围绕焦点在球形纬度上运动。例子:
Azimuth(150)//表示 camera 的视点位置沿顺时针旋转 150 度角
Elevation(60)// 表示 camera 的视点位置沿向上的方面旋转 60 度角
初始化相机
vtkCamera* cam1 = vtkCamera::New();
cam1->SetClippingRange(0.0475572, 2.337786);
cam1->SetFocalPoint(0.052665, -0.129454, -0.0573973);
cam1->SetPosition(0.327637, -0.116299, -0.256418);
cam1->ComputeViewPlaneNormal();
cam1->SetViewUp(-0.0225386, 0.999137, 0.034901);
ren1->SetActiveCamera(cam1);
设置已有的相机
cam1 = ren1->GetActiveCamera();
cam1->Zoom(1.4);
另外,也可以使用Dolly()方法沿着视平面法向移动相机,实现放大或缩小可见角色物体。
基于焦点,使用Azimuth()和Elevation()方法设置相机的方位角和高度角/仰角(度,degree)[球坐标系统]。
注意其中在南极和北极存在奇异点,即视向量平行于视平面法向。此时可以使用OrthogonalizeViewUp()方法强制其正交。但这会改变相机坐标系统。
正交投影vs透视投影
vtkCamera::ParallelProjectionOn()开启平行/正交投影。此时需通过SetParallelScale()方法控制角色物体的缩放。Zoom不再有效。
本文来源:http://swyxgc.blog.163.com/blog/static/4567575320112433642190/
- vtk对 camera 的操作方法如下
- vtk Camera
- vtk Camera
- vtk Camera
- 对数组的操作方法
- Java对LDAP的操作方法
- JSTL 对集合的操作方法
- ASP对数据库的操作方法
- PHP对文件的操作方法
- VTK Camera简介
- vtk 对polydata的bool运算
- ITK/VTK对DICOM文件的读取
- VB6对任意数据库的通用操作方法
- Delphi对INI文件的详细操作方法
- Bash中对变量的操作方法
- java对时间的各种操作方法
- Sql2000中对标识列的操作方法
- js里面那些对字符串的操作方法
- HPUoj魏好看买折纸
- 根据图片的路径删除显示在view中的图片
- 求助!一点回返回键就退出报Static storage paths aren't available from AID_SYSTEM
- iOS afnetworking+webservice 请求数据
- Android的数据存储及数据库操作
- vtk对 camera 的操作方法如下
- hpu 问题 B: 魏好看买折纸
- [求助]iphone4上视频流播放
- HTTP协议详解
- openwrt之wrtnode学习日记day3续
- android中,如何判断一个点在一个范围内
- iOS中保证线程安全的几种方式与性能对比
- openwrt之wrtnode学习日记day4
- Oracle DUAL误删 恢复测试