VTK显示六棱柱

这个就是稍微复杂一点的程序,但是vtk的和qt的图形视图框架十分类似,qt里有视图、图元、场景,而vtk里恰好也有这些

#include "vtkSmartPointer.h"
#include "vtkRenderWindow.h"
#include "vtkRenderer.h"
#include "vtkRenderWindowInteractor.h"
#include "vtkInteractorStyleTrackballCamera.h"
#include "vtkCylinderSource.h"
#include "vtkPolyDataMapper.h"
#include "vtkActor.h"
#include "vtkBMPReader.h"
#include "vtkTexture.h"
#include <vtkAutoInit.h>
#include <vtkLight.h>
#include <vtkCamera.h>
#include <vtkJPEGReader.h>
#include <vtkTexture.h>
#include <vtkPlaneSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkAutoInit.h>
VTK_MODULE_INIT(vtkRenderingOpenGL2);
VTK_MODULE_INIT(vtkInteractionStyle);
int  main()
{vtkSmartPointer<vtkCylinderSource> cylinder =vtkSmartPointer<vtkCylinderSource>::New();cylinder->SetHeight(3.0);//设置高度cylinder->SetRadius(1.0);//设置半径cylinder->SetResolution(6);//设置柱体横截面的边数vtkSmartPointer<vtkPolyDataMapper> cylinderMapper =vtkSmartPointer<vtkPolyDataMapper>::New();//将输入的数据转换为(点、线、多边形)进行渲染cylinderMapper->SetInputConnection(cylinder->GetOutputPort());//VTK可视化管线的输入数据接口//vtkActor,派生自vtkProp类,渲染场景中数据的可视化表达是通过vtkProp的子类负责的//vtkProp子类负责确定渲染场景中对象的位置、大小和方向信息vtkSmartPointer<vtkActor> cylinderActor =vtkSmartPointer<vtkActor>::New();cylinderActor->SetMapper(cylinderMapper);//Mapper(vtkMapper)对象,负责存放数据和渲染信息//cylinderActor->SetTexture(vtexture);//负责管理场景的渲染过程//组成场景的所有对象包括Prop,照相机(Camera)和光照(Light)都被集中在一个vtkRenderer对象中//一个vtkRenderWindow中可以有多个vtkRenderer对象,而这些vtkRenderer可以渲染在窗口中不同的矩形区域中vtkSmartPointer<vtkRenderer> renderer =vtkSmartPointer<vtkRenderer>::New();renderer->AddActor(cylinderActor);//添加vtkProp类型的对象到渲染场景中//用于设置渲染场景的背景颜色,用R、G、B的格式设置,三个分量的取值为0.0~ 1.0//(0.0,0.0, 0.0)为黑色,(1.0,1.0, 1.0)为白色renderer->SetBackground(0.2, 0.1, 0.4);//将操作系统与VTK渲染引擎连接到一起。//不同平台下的vtkRenderWindow子类负责本地计算机系统中窗口创建和渲染过程管理vtkSmartPointer<vtkRenderWindow> renWin =vtkSmartPointer<vtkRenderWindow>::New();renWin->AddRenderer(renderer);//加入vtkRenderer对象renWin->SetSize(1300, 700);//设置窗口的大小,以像素为单位//提供平台独立的响应鼠标、键盘和时钟事件的交互机制//通过VTK的Command/Observer设计模式将监听到的特定平台的鼠标//键盘和时钟事件交由vtkInteractorObserver或其子类vtkSmartPointer<vtkRenderWindowInteractor> iren =vtkSmartPointer<vtkRenderWindowInteractor>::New();iren->SetRenderWindow(renWin);//设置渲染窗口,消息是通过渲染窗口捕获到的,所以必须要给交互器对象设置渲染窗口//交互器样式的一种,该样式下,用户是通过控制相机对物体作旋转、放大、缩小等操作vtkSmartPointer<vtkInteractorStyleTrackballCamera> style =vtkSmartPointer<vtkInteractorStyleTrackballCamera>::New();iren->SetInteractorStyle(style);//定义交互器样式,默认的交互样式为vtkInteractorStyleSwitchiren->Initialize();iren->Start();return 0;
}

cylinder是六棱柱的数据源,然后cylindermapper把数据源弄成图元,然后vtkactor拿到这个图元道具,接着把这个vtkactor放到场景vtkrender,vtkrender然后渲染场景,vtkrenderwindow将操作系统和与VTK渲染引擎连接到一起,然后就是交互器,提供一些交互的功能

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/235051.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣题目学习笔记(OC + Swift) 13. 罗马数字转整数

罗马数字转整数 罗马数字包含以下七种字符: I&#xff0c; V&#xff0c; X&#xff0c; L&#xff0c;C&#xff0c;D 和 M。 字符 数值 I 1 V 5 X 10 L 50 C 100 D 500 M 1000 例如&#xff0c; 罗马数字 2 写做 II &#xff0c;即为两个并列的 1 。12 写做 XII &#xff0c;…

5252D 5G基站测试仪

01 5252D 5G基站测试仪 产品综述&#xff1a; 5252D多通道综测仪打破了信号发生器进行信号发射、频谱分析仪进行观看频域波形的测试方案&#xff0c;将信号收发融为一体&#xff0c;推动无线通信测试进入全新时代。其独具的多通道收发一体、高性能、全方位测试能力及直观操作…

凯斯西储大学轴承数据解读

文章目录 一、凯斯西储大学轴承数据基础知识&#xff1f;1.1 故障种类1.2 故障点尺寸&#xff08;单点故障&#xff09;1.3 载荷和转速 二、数据解读2.1 文件2.2 以12k Drive End Bearing Fault Data为例2.3 以&#xff08;0.007&#xff0c;inner race)为例。 3 Normal Baseli…

爬虫scrapy管道的使用

爬虫scrapy管道的使用 学习目标&#xff1a; 掌握 scrapy管道(pipelines.py)的使用 之前我们在scrapy入门使用一节中学习了管道的基本使用&#xff0c;接下来我们深入的学习scrapy管道的使用 1. pipeline中常用的方法&#xff1a; process_item(self,item,spider): 管道类中…

计算机组件操作系统BIOS的相关知识思维导图

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 目录 一、运维实施工程师需要具备的知识 1、运维工程师、实施工程师是啥&#xff1f; 2、运维工程师、实施工…

whisper深入-语者分离

文章目录 学习目标&#xff1a;如何使用whisper学习内容一&#xff1a;whisper 转文字1.1 使用whisper.load_model()方法下载&#xff0c;加载1.2 使用实例对文件进行转录1.3 实战 学习内容二&#xff1a;语者分离&#xff08;pyannote.audio&#xff09;pyannote.audio是huggi…

基于ETM+遥感数据的城市热岛效应现状研究的解决方案

1.引言 城市热岛效应&#xff08;Urban Heat Island Effect&#xff09;是指城市中的气温明显高于外围郊区的现象。在近地面温度图上&#xff0c;郊区气温变化很小&#xff0c;而城区则是一个高温区&#xff0c;就像突出海面的岛屿&#xff0c;由于这种岛屿代表高温的城市区域&…

Android ViewPager实现下载当前页面ImageView的Bitmap图片

一 问题背景 经常会有画廊组件需要在当前展示给用户的页面进行下载功能。一般情况下下载按钮的UI曾经是和ViewPager同级的&#xff0c;而不是作为ViewPager中adapter对应的item一部分。 因此知道当前展示给用户的item页面及其bitmap在用户点击下载按钮时的处理&#xff0c;显…

20、清华、杭州医学院等提出:DA-TransUNet,超越TranUNet,深度医学图像分割框架的[皇帝的新装]

前言&#xff1a; 本文由清华电子工程学院、杭州医学院、大阪大学免疫学前沿研究所、日本科学技术高等研究院信息科学学院、东京法政大学计算机与信息科学专业共同作者&#xff0c;于2023年11月14号发表于arXiv的《Electrical Engineering and Systems Science》期刊。 论文&…

MongoDB与大数据处理:构建高性能分布式数据库

MongoDB是一种非关系型数据库&#xff0c;具有高度灵活性和可扩展性。在处理大量数据时&#xff0c;索引的优化是提升查询性能的关键。下面将介绍一些MongoDB索引优化的指南&#xff0c;帮助用户更好地利用索引来提高查询性能。 一、选择适当的索引类型 1、单字段索引&#xf…

15.动态规划:数据结构优化DP

数据结构优化DP有前缀和、滑动窗口、树状数组、线段树、单调栈、单调队列 文章目录 树状数组优化DP[300. 最长递增子序列](https://leetcode.cn/problems/longest-increasing-subsequence/)【值域树状数组】[2926. 平衡子序列的最大和](https://leetcode.cn/problems/maximum-b…

Go项目快速集成Swagger UI

swag Swag将Go的注释转换为Swagger2.0文档。我们为流行的 Go Web Framework 创建了各种插件&#xff0c;这样可以与现有Go项目快速集成&#xff08;使用Swagger UI&#xff09;。 目录 快速开始支持的Web框架如何与Gin集成格式化说明开发现状声明式注释格式 通用API信息API操…

MySQL实战45讲课后问题

1、第一章 如果表T中没有字段k&#xff0c;而你执行了这个语句 select *fromTwhere k1, 那肯定是会报“不存在这个列”的错误&#xff1a; “Unknown column ‘k’ in ‘where clause’”。你觉得这个错误是在我们上面提到的哪个阶段报出来的呢&#xff1f; 解答&#xff1a;…

网线的制作集线器交换机路由器的配置--含思维导图

&#x1f3ac; 艳艳耶✌️&#xff1a;个人主页 &#x1f525; 个人专栏 &#xff1a;《产品经理如何画泳道图&流程图》 ⛺️ 越努力 &#xff0c;越幸运 一、网线的制作 1、网线的材料有哪些&#xff1f; 网线 网线是一种用于传输数据信号的电缆&#xff0c;广泛应…

学生党评测FreeBuds SE 2,华为最便宜的TWS耳机体验如何?

华为最便宜的百元价位TWS耳机——FreeBuds SE 2值得入手吗&#xff1f;学生党实际使用一个多月&#xff0c;今天从个人主观使用感受来展开说说它的优缺点&#xff0c;如果说你正在观望要不要入手这款耳机&#xff0c;希望可以帮到你。 优点一&#xff1a;超长续航 对于我这种…

JMM的内存可见性保证

Java程序的 内存可见性保证 可以分为下列3类 1&#xff09;单线程程序 单线程程序不会出现内存可见性问题。 编译器、runtime、处理器会共同确保单线程程序的执行结果与该程序在顺序一致性模型中的执行结果相同。 2&#xff09;正确同步的多线程程序 Further Reading &…

YOLOv8改进 | 2023注意力篇 | HAttention(HAT)超分辨率重建助力小目标检测 (全网首发)

一、本文介绍 本文给大家带来的改进机制是HAttention注意力机制&#xff0c;混合注意力变换器&#xff08;HAT&#xff09;的设计理念是通过融合通道注意力和自注意力机制来提升单图像超分辨率重建的性能。通道注意力关注于识别哪些通道更重要&#xff0c;而自注意力则关注于图…

Redis cluster集群设置密码

Redis cluster集群设置密码 1 备份数据 # 链接redis集群,执行rdb快照 bgsave # 备份dump.rdb文件 cp /data/redis/cluster/dump.rdb /data/redis/cluster/backup/dump.rdb.202312202 设置密码 必须保证每个节点的密码保持一致&#xff0c;不然 Redirected 的时候会失败 2.1…

C : DS二叉排序树之删除

Description 给出一个数据序列&#xff0c;建立二叉排序树&#xff0c;并实现删除功能 对二叉排序树进行中序遍历&#xff0c;可以得到有序的数据序列 Input 第一行输入t&#xff0c;表示有t个数据序列 第二行输入n&#xff0c;表示首个序列包含n个数据 第三行输入n个数据…

Python 元组完全指南 1

元组用于在单个变量中存储多个项目。 mytuple ("apple", "banana", "cherry") 元组是 Python 中的 4 种内置数据类型之一&#xff0c;用于存储数据集合&#xff0c;另外还有列表、集合和字典&#xff0c;它们都具有不同的特性和用途。元组是有…