当前位置: 首页 > backend >正文

VTK官方C++ demo1

文章目录

  • 效果
  • 大致步骤
  • 代码
  • 参考

效果

在这里插入图片描述

大致步骤

  1. 包含必要的头文件:引入 VTK 中用于创建、渲染和显示图形的各种类。
  2. 创建颜色管理对象:vtkNamedColors 用于通过名称选择颜色。
  3. 创建圆锥源:vtkConeSource 用于生成圆锥的多边形数据。
  4. 创建映射器:vtkPolyDataMapper 将多边形数据转换为图形基元。
  5. 创建演员:vtkActor 负责协调圆锥的渲染,并设置其颜色。
  6. 创建渲染器:vtkRenderer 负责管理演员的渲染,并设置背景颜色。
  7. 创建渲染窗口:vtkRenderWindow 用于显示渲染结果,并设置窗口大小和名称。
  8. 循环渲染:通过循环 360 次,每次旋转相机 1 度并渲染图像,实现圆锥的旋转效果。

代码

/*=========================================================================版权归 Ken Martin、Will Schroeder 和 Bill Lorensen 所有保留所有权利。有关详细信息,请参阅 Copyright.txt 或 http://www.kitware.com/Copyright.htm。此软件在分发时不提供任何形式的保证;甚至不保证其适用于特定目的。有关更多信息,请参阅上述版权声明。=========================================================================*/// 首先包含我们要使用的 VTK 类所需的头文件。
#include <vtkActor.h>
#include <vtkCamera.h>
#include <vtkConeSource.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkPolyDataMapper.h>
#include <vtkProperty.h>
#include <vtkRenderWindow.h>
#include <vtkRenderer.h>int main(int, char*[])
{//// 接下来,我们创建一个 vtkNamedColors 实例,用于为对象和背景选择颜色。//vtkNew<vtkNamedColors> colors;//// 现在,我们创建一个 vtkConeSource 实例,并设置它的一些属性。// vtkConeSource 实例 “cone” 是可视化管道的一部分(它是一个源处理对象);// 它生成数据(输出类型为 vtkPolyData),其他过滤器可以对这些数据进行处理。//vtkNew<vtkConeSource> cone;// 设置圆锥的高度为 3.0cone->SetHeight(3.0);// 设置圆锥底面的半径为 1.0cone->SetRadius(1.0);// 设置圆锥的分辨率为 10,即圆锥的侧面由多少个多边形组成cone->SetResolution(10);//// 在这个例子中,我们用一个映射器处理对象来终止管道。// (像 vtkShrinkPolyData 这样的中间过滤器可以插入到源和映射器之间。)// 我们创建一个 vtkPolyDataMapper 实例,将多边形数据映射为图形基元。// 我们将圆锥源的输出连接到这个映射器的输入。//vtkNew<vtkPolyDataMapper> coneMapper;coneMapper->SetInputConnection(cone->GetOutputPort());//// 创建一个演员(actor)来表示圆锥。演员负责协调映射器图形基元的渲染。// 一个演员还通过 vtkProperty 实例引用属性,并且包含一个内部变换矩阵。// 我们将这个演员的映射器设置为上面创建的 coneMapper。//vtkNew<vtkActor> coneActor;coneActor->SetMapper(coneMapper);// 设置圆锥演员的颜色为 “MistyRose”(淡玫瑰色)coneActor->GetProperty()->SetColor(colors->GetColor3d("MistyRose").GetData());//// 创建渲染器(Renderer)并为其分配演员。渲染器就像一个视口。// 它是屏幕上窗口的一部分或全部,负责绘制它所拥有的演员。// 我们还在这里设置背景颜色。//vtkNew<vtkRenderer> ren1;// 将圆锥演员添加到渲染器中ren1->AddActor(coneActor);// 设置渲染器的背景颜色为 “MidnightBlue”(深蓝色)ren1->SetBackground(colors->GetColor3d("MidnightBlue").GetData());// 最后,我们创建一个将显示在屏幕上的渲染窗口。// 我们使用 AddRenderer 将渲染器放入渲染窗口中。// 我们还将窗口大小设置为 300 像素宽,300 像素高。//vtkNew<vtkRenderWindow> renWin;// 将渲染器添加到渲染窗口中renWin->AddRenderer(ren1);// 设置渲染窗口的大小为 300x300 像素renWin->SetSize(300, 300);// 设置渲染窗口的名称为 "Tutorial_Step1"renWin->SetWindowName("Tutorial_Step1");//// 现在,我们循环 360 度,每次都渲染圆锥。//for (int i = 0; i < 360; ++i){// 渲染图像renWin->Render();// 将活动相机绕方位角旋转 1 度ren1->GetActiveCamera()->Azimuth(1);}return EXIT_SUCCESS;
}

参考

https://examples.vtk.org/site/Cxx/Tutorial/Tutorial_Step1/

http://www.xdnf.cn/news/850.html

相关文章:

  • 论文分享:【2024 CVPR】Vision-and-Language Navigation via Causal Learning
  • Harbor对接非AWS对象存储
  • 零基础学Python——第六章:Python标准库
  • mongodb 存储数据的具体实现方式
  • 计算机视觉中的正则化:从理论到实践的全面解析
  • 缓存设计模式
  • HTTP与HTTPS的区别
  • 固定资产全生命周期管理:采购至报废的高效管理路径
  • CC注入Tomcat Upgrade/Executor/WebSocket内存马
  • 【网络安全】CI/CD 流水线漏洞
  • Python 金融量化分析
  • 【ESP32】【微信小程序】MQTT物联网智能家居案例
  • 模拟量数据信号采集模块的特点及应用
  • 无需接线!虚幻引擎变量跨次元绑定的无线电奥秘
  • Spring Boot 核心模块全解析:12 个模块详解及作用说明
  • 蓝桥杯 17.发现环
  • springboot对接阿里云大模型
  • 忽略 CS8616 警告在 Visual Studio 2022 中【C# 8.0 】
  • ios17 音频加载失败问题
  • Redis 慢查询分析与优化
  • 蓝桥杯 18.分考场
  • C++之unordered封装
  • 基于Python的设计模式之创建型模型
  • 动手学深度学习——Transformer
  • 14.第二阶段x64游戏实战-分析人物的名字
  • Github 热点项目 Jumpserver开源堡垒机让服务器管理效率翻倍
  • 25.解决中医知识问答删除历史对话功能后端处理请求时抛出异常
  • 前端基础之《Vue(7)—生命周期》
  • 深度学习算法:从基础到实践
  • 第 28 场 蓝桥月赛