使用vtk创建设置了面的颜色的立方体

news2025/1/13 3:09:44

引言

该示例为官网上的例子。创建了一个每个面被设置相同颜色的立方体。

示例

开发环境

使用QtCreator4.11.2,Qt5.14.2。使用的vtk9.2的库及其头文件。创建空项目。

示例代码

其pro文件中的内容:

QT       += core gui

greaterThan(QT_MAJOR_VERSION, 4): QT += widgets

CONFIG += c++11 vtk9.2

# The following define makes your compiler emit warnings if you use
# any Qt feature that has been marked deprecated (the exact warnings
# depend on your compiler). Please consult the documentation of the
# deprecated API in order to know how to port your code away from it.
DEFINES += QT_DEPRECATED_WARNINGS

# You can also make your code fail to compile if it uses deprecated APIs.
# In order to do so, uncomment the following line.
# You can also select to disable deprecated APIs only up to a certain version of Qt.
#DEFINES += QT_DISABLE_DEPRECATED_BEFORE=0x060000    # disables all the APIs deprecated before Qt 6.0.0



SOUPDIR = $$PWD/../../SOUPdependency
vtk9.2 {
    contains(QT_ARCH, x86_64) {
        include($$SOUPDIR/vtk-9.2/vtk-9.2.pri)
    } else {
        include($$SOUPDIR/vtk-9.2-2017-omp-win32/vtk-9.2.pri)
    }
    DEFINES += vtkEventDataButton3D=vtkEventDataDevice3D
    DEFINES += vtkEventDataMove3D=vtkEventDataDevice3D
}

include($$SOUPDIR/dcmtk-3.6.4/dcmtk-3.6.4.pri)

# Default rules for deployment.
qnx: target.path = /tmp/$${TARGET}/bin
else: unix:!android: target.path = /opt/$${TARGET}/bin
!isEmpty(target.path): INSTALLS += target

SOURCES += \
    main.cpp

main.cpp

#include <vtkCubeSource.h>
#include <vtkPolyDataMapper.h>
#include <vtkActor.h>
#include <vtkRenderer.h>
#include <vtkRenderWindow.h>
#include <vtkRenderWindowInteractor.h>
#include <vtkCamera.h>
#include <vtkNamedColors.h>
#include <vtkNew.h>
#include <vtkProperty.h>
#include <QDebug>
#include <QString>

#include "vtkAutoInit.h"
VTK_MODULE_INIT(vtkRenderingOpenGL2)//渲染
VTK_MODULE_INIT(vtkInteractionStyle)//交互样式
VTK_MODULE_INIT(vtkRenderingFreeType)//文本图像
VTK_MODULE_INIT(vtkRenderingVolumeOpenGL2)//体素

int main(int argc,char*argv[])
{
    vtkNew<vtkNamedColors> colors;

    vtkNew<vtkCubeSource> cubeSource;
    cubeSource->Update();

    vtkNew<vtkPolyDataMapper> mapper;
    mapper->SetInputData(cubeSource->GetOutput());

    vtkNew<vtkActor> actor;
    actor->SetMapper(mapper);
    actor->GetProperty()->SetColor(colors->GetColor3d("Banana").GetData());

    vtkNew<vtkRenderer> render;
    render->AddActor(actor);
    render->ResetCamera();
    render->GetActiveCamera()->Azimuth(30);//设置相机的方位角,水平方向旋转,正数——顺时针,负数——逆时针
    render->GetActiveCamera()->Elevation(30);//设置相机位置,上下方向,正数——相机向上移 负数——相机向下移
    render->ResetCameraClippingRange();//重置相机前后剪切面范围
    render->SetBackground(colors->GetColor3d("Sliver").GetData());
    double dPostion[3];//获取并输出相机的位置
    render->GetActiveCamera()->GetPosition(dPostion);
    qDebug()<<QString::number(dPostion[0],'f',2)<<"1"<<QString::number(dPostion[1],'f',2)<<"2"<<QString::number(dPostion[2],'f',2);

    vtkNew<vtkRenderWindow> renderWindow;
    renderWindow->AddRenderer(render);
    renderWindow->SetWindowName("Cube");
    renderWindow->SetSize(300,300);
    renderWindow->Render();

    vtkNew<vtkRenderWindowInteractor> interactor;
    interactor->SetRenderWindow(renderWindow);
    interactor->Start();

    return 0;
}

运行结果

在这里插入图片描述

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

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

相关文章

利用jmeter测试java请求

jmeter和loadrunner一样包含了测试脚本开发、测试执行、以及测试结果统计三个部分。只是jmeter没有脚本开发工具&#xff0c;因此测试java请求的脚本选择在eclipse中进行。 首先介绍如何用eclipse编写接口性能测试脚本。 针对"Java请求"类型的测试&#xff0c;需要…

折半查找包含程序

折半查找又称二分查找&#xff0c;它仅适用于有序的顺序表 以下面的例子来讲解折半查找的过程 元素710131619293233374143数组位置012345678910 第一步&#xff1a;先确定查找元素&#xff0c;以14为例子&#xff1b;low和high分别是指向表的上界和下界&#xff1b;最开是low…

【Cookie】Cookie简介以及跨域问题

Cookie 一、Cookie简介 1、Cookie是什么 cookie是由网络服务器存储在你电脑硬盘上的一个txt类型的小文件&#xff0c;它和你的网络浏览行为有关&#xff0c;所以存储在你电脑上的cookie就好像你的一张身份证&#xff0c;你电脑上的cookie和其他电脑上的cookie是不一样的。 …

java 堆(优先级队列)详解

JAVA堆以及优先级队列详解 一、堆的模拟实现1.1堆的概念1.2 堆的性质1.3堆的存储结构1.4堆的创建1.4.1 只有根节点不满足堆的特性1.4.2 不只有根节点不满足堆的特性1.4.2.1 建堆代码1.4.2.2 建堆过程图示 1.4.3 建堆的时间复杂度 1.5堆的插入1.5.1堆的插入的基本思想1.5.2堆的插…

非局部attention之Non-local

论文&#xff1a;Non-local Neural Networks Github&#xff1a;GitHub - AlexHex7/Non-local_pytorch: Implementation of Non-local Block. GitHub - facebookresearch/video-nonlocal-net: Non-local Neural Networks for Video Classification cvpr2018 凯明作品 论文提出…

Echarts自定义legend图例

legend: {icon: rect, // 形状itemHeight: 4, // 高度itemWidth: 18, // 宽度itemGap: 15, //设置图例的间距...... }, 效果&#xff1a;

QT进度条代理的实现

目的 进度条也是一个基本的功能&#xff0c;这里进度条想在Tableview里面实现&#xff0c;让Tableview其中一个单元格显示进度条&#xff0c;因为就用了代理。 什么是代理&#xff0c;官方说&#xff1a; 代理(Delegate)就是在视图组件上为编辑数据提供编辑器&#xff0c;如在…

Kindle刷机安装微信读书。

1、越狱 2、安装软件 3、刷机 4、安装微信读书 刷机参考链接&#xff1a; https://www.xiaohongshu.com/explore/63d3f730000000001f027d0e?sourcequestion Kindle 通用越狱教程&#xff1a;适用固件版本 5.12.2.2~5.14.2 – 书伴 正式开始了。 1、越狱&#xff0c;参考…

[Flask] Flask会话

由于HTTP的无状态性&#xff0c;为了使某个域名下的所有网页能够共享某些数据&#xff0c;Cookie和Session应运而生 1.Cookie对象 HTTP是无状态(stateless)协议&#xff0c;一次请求响应结束后&#xff0c;服务器不会留下任何关于对方状态的信息 也就是说&#xff0c;尽管在…

2023年数字人产业发展趋势报告:好看的皮囊到有趣的灵魂

报告来源&#xff1a;腾讯研究院 报告看点&#xff1a;随着交互智能技术的加速发展&#xff0c;数字人正在从技术创新走向产业应用。 在腾讯2022数字生态大会腾讯云智能专场上&#xff0c;腾讯研究院、腾讯云智能、创业黑马经过产业研究、实地调研&#xff0c;共同提炼发布《数…

【Spring】Spring Bean 容器的生命周期是什么样的?

文章目录 一、什么是 Spring Bean 的生命周期&#xff1f;二、Spring 中的 bean 的作用域有哪些?三、Spring Bean 的生命周期四、Spring Bean 的生命周期流程图 一、什么是 Spring Bean 的生命周期&#xff1f; 对于普通的 Java 对象&#xff0c;当 new 的时候创建对象&#…

智头条|2023TUYA开发者大会精彩不断,IDC预测:2026年全球AI服务支出将增至646亿美元

1、行业动态 奢侈品巨头LVMH宣布将推出元宇宙项目“The Journey” 近日&#xff0c;奢侈品巨头LVMH宣布推出元宇宙项目“The Journey”&#xff0c;允许旗下用户进入一个拥有专属产品和体验的全新虚拟世界&#xff0c;目前官网显示该元宇宙项目下包括The Showroom、The Tech …

HotSpot 垃圾收集器

HotSpot 垃圾收集器 HotSpot 虚拟机提供了多种垃圾收集器&#xff0c;每种收集器都有各自的特点&#xff0c;虽然我们要对各个收集器进行比较&#xff0c;但并非为了挑选出一个最好的收集器。我们选择的只是对具体应用最合适的收集器。 新生代垃圾收集器 Serial 垃圾收集器&am…

Tomcat的部署及优化

目录 1.Tomcat概述 1.1 Tomcat的组件构成​编辑 1.2 Tomcat功能组件结构 1.3 Tomcat的请求过程 2. Tomcat服务的部署 2.1 搭建Tomcat运行环境 3.设置JDK环境变量​ 3.1测试java环境 4.安装启动Tomcat 1.Tomcat概述 Tomcat 是 基于Java 语言开发的Tomcat 属于轻量级应用服务…

数据结构 | 顺序线性表

一、数据结构定义 typedef int SqlTableType;typedef struct seqTable{int MAXNUM; // 最大元素个数 int curNum; // 元素的个数SqlTableType* element; // 连续空间的起始地址 }*SqlTable; 二、方法概览 SqlTable CreateSqlTable(int max); // 创建空顺序表 …

MySQL——mha高可用

MHA的概念 什么是 MHA MHA&#xff08;MasterHigh Availability&#xff09;是一套优秀的MySQL高可用环境下故障切换和主从复制的软件。 MHA 的出现就是解决MySQL 单点的问题。 MySQL故障切换过程中&#xff0c;MHA能做到0-30秒内自动完成故障切换操作。 MHA能在故障切换的过…

【Android -- 面试】程序员面试必备软技能,值得收藏!

文章目录 一、准备技术型简历1. 准备简历模板2. 准备个⼈信息3. 准备专业技能4. 准备⼯作经历5. 准备项⽬经历 二、面试前的准备1. 利用脑图来梳理知识点2. 收到面试邀请后的准备 三、面试的注意事项1. ⾃我介绍2. 技术考察3. 向⾯试官提问4. 面试礼仪 四、如何通过 HR ⾯1. HR…

数据结构 | 顺序栈

一、数据结构定义 typedef int StackType; typedef struct seqStack{int MAXNUM; // 最大元素个数 int top; // 栈顶位置&#xff0c;初始化为0或-1StackType element[100]; // 元素的连续空间的起始地址 } *SeqStack; 二、方法概览 SeqStack CreateSqlStack…

【服务器数据恢复】ZFS文件系统下raid5数据恢复案例

服务器数据恢复环境&#xff1a; 某公司一台EMC某型号存储中有一组由12块硬盘组建的raid5磁盘阵列&#xff0c;其中有2块盘作为热备盘使用。 服务器故障&分析&#xff1a; raid5磁盘阵列中有2块磁盘离线&#xff0c;只有1块热备盘成功启用&#xff0c;另外一块热备盘未启用…

Elastic 栈中的 Kibana安装

Kibana 是一个开源分析和可视化平台&#xff0c;旨在与 Elasticsearch 协同工作。 你使用 Kibana 搜索&#xff0c;查看和与存储在 Elasticsearch 索引中的数据进行交互。 你可以轻松执行高级数据分析&#xff0c;并在各种图表&#xff0c;表格和地图中可视化你的数据。 官方链…