vtk相机_VTK相机参数_一只小风的博客-程序员秘密

技术标签: vtk相机  

正如参考资料[1]所言,在VTK中实现相机参数设置的类为vtkCamera,关于相机的原理和作用,可见参考资料[1],本文主要描述不同参数设置的不同效果。

1 参数说明

1.1 基本参数

在相机设置中,最基本的就是下面三个设置:

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度

注意:上述关于坐标设置的函数使用的都是世界坐标。

关于上述三个参数的意义,这里引用参考资料[1]的示意图来进行说明,如下图所示:

93dd806540d1c46239dffd3658234e16.png

图 1.1 相机参数原理示意图

1.2 运动控制

void vtkCamera::Roll(double angle)

void vtkCamera::Azimuth(double angle)

void vtkCamera::Elevation(double angle)

上面函数都是设置旋转的,具体意义引用参考资料[1]的相机运动方向示意图来进行说明

f7760169d0f3c1a918594a52f4e63f52.png

图 1.2 相机运动方向示意图

2 参数效果示例

2.1 相机朝向设置

SetViewUp()采用不同的参数时,效果如下图:

eb8ed2816de24dacd9577f26a51450e5.png

图2.1 SetViewUp参数效果

需要注意的是,图1.2中两幅图的效果看起来是上下翻转的,其实不是的,只是旋转了180度而已!

2.2 Azimuth

Azimuth()采用不同的参数,其效果如下图

f4a7f55b476a9f5b5c25d3cf911993c5.png

图 2.2 Azimuth参数设置

由图2.2可见,通过设置Azimuth参数,可以到达水平翻转的效果。

参考资料

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_36316642/article/details/113548554

智能推荐

linux centos7装ghome,Linux学习笔记之Centos7安装GNOME桌面环境_艺术作品集情报局的博客-程序员秘密

最小化安装Centos7,系统默认是命令行界面,如果像我一样有特殊需求,这时就需要我们手动来安装用户图形界面了。1.查看一下当前的运行级别和可以安装的group。systemctl get-defaultyum grouplist 2.用命令行安装GNOME包,这需要等待一段时间。yum groupinstall "GNOME Desktop" "Graphical Administration ...

React.Fragment 的作用:代替div作为外层_dicha7140的博客-程序员秘密

https://segmentfault.com/a/1190000013220508import React, { Fragment } from 'react';<Fragment> Copyright <Icon type="copyright" /> 2018 蚂蚁金服体验技术部出品</Fragment&gt...

Tinker热修复框架接入_冰路梦的博客-程序员秘密

Tinker热修复框架接入Android现在开发App基本都开始接入热修复框架,为的就是能够修复一些线上紧急Bug。热门的热修复框架以及对比,网上介绍的也很多,个人而言就用过腾讯的tinker以及阿里的sophix。腾讯tinkerTinker简介,根据官方文档接入tinker,然后测试热修复补丁,总是莫名地失败(或许是自己技术太渣)。无奈就不去折腾它,而选择了第三方的tinkerpatch这...

emui11华为主题破解_余承东:鸿蒙OS手机明年会有!华为开发者大会将发布鸿蒙、HMS和EMUI三大系统升级..._weixin_39642687的博客-程序员秘密

新智元报道来源:cnbeta编辑:雅新【新智元导读】在华为开发者大会即将召开之际,余承东近日表示今年鸿蒙OS手机不再发布。今年华为的开发者大会将围绕三个主题展开:鸿蒙系统、HMS服务、EMUI 11系统。所有人都对今年的华为鸿蒙OS手机满怀期待,但是这个期待现已成为泡沫~还有9天就是华为开发者大会了。近日,华为消费者业务CEO余承东表示,鸿蒙OS版本手机今年不会发布。9月10...

随便推点

有向无环图(DAG)技术:超越区块链的分布式账本_dag 节点 记账_学习区块链的博客-程序员秘密

一、起源 DAG(Directed Acyclic Graph,有向无环图)是一种数据结构,最早提出在区块链中加入DAG概念作为算法,是在2013年的bitcointalk论坛,被称作为“Ghost协议”,这一提议也是为了解决当时比特币的扩容问题。后来,在NXT社区,又有人提出了DAG of block,将DAG的拓扑结构用来存储区块,解决效率问题。那时对于DAG的应用,还停留在类似于侧链...

log4j2基本使用手册_湛兰的博客-程序员秘密

log4j2基本使用手册一、下载、安装、配置log4j2是Apache公司开发的插件,用于控制、输出log信息等。log4j2是log4j 1.x 的升级版,2015年5月,Apache宣布log4j1.x 停止更新。下载地址:http://logging.apache.org/log4j/2.x/download.html下载下来的文件:apache-log4j-2.13.3-bin.zip1、将解压出来的log4j-api-2.x.x.jar 和 log4j-core-2.x.x.jar引用到

Android widget之ListView_支持listview滑动的widget_七分醉三分醒的博客-程序员秘密

简介ListView是一个视图组,显示可滚动项目的列表。列表项目将自动插入到列表中,使用该方法Adapter从源(例如数组或数据库查询)中提取内容,并将每个项目结果转换为放置到列表中的视图。一般,自定义列表需要与(android.widget.BaseAdapter)配合使用!ListView的简单使用自定义适配器扩展使用(仿 饿了吗、大众等)

VisualStudio使用技巧_续写经典的博客-程序员秘密

VisualStudio虽然大家每天都在使用它,但是可能有些功能的使用大家并不清楚,甚至不知道有这项功能,下面这些技巧可能会对你有所帮助。     先上目录:     第一节:     怎样给自己的代码添加版权信息。     怎样给自己的代码添加代码段。     怎样使用任务管理器。     怎样使用发布网站功能。     怎样把常用代码放到工具箱中的常规选

imputation文献-A systematic evaluation of single-cell RNA-sequencing imputation methods_人生似_碗酒的博客-程序员秘密

该篇综述讨论了基于scRNA-seq设计的多种impuatation方法在差异表达分析和聚类以及轨迹分析等下游分析中的作用,论证了不同方法对于不同数据集的适用性。

微服务之数据库_小王学着玩的博客-程序员秘密

微服务数据库Spring Data一:简介1.1 Spring Data的功能二:Spring Data与JPA一:简介Spring Data框架的目的是为数据的访问提供一个通用的框架。封装若干中数据服务访问能力。如:spring-data-jpa、spring-data-jdbc、spring-data-redis等。对于程序员来说,对于任何访问数据库的技术,使用了spring Data...

推荐文章

热门文章

相关标签