VTK对属性参数的设置,以及用vtkFieldData存储属性数据的方法

    数据集的属性(属性数据)是与数据集结构相关联的。而数据集又是建立在点和单元的基础上,所以数据属性很自然地是与点和单元相关联。即每个点每个单元都有与其对应的数据属性。

      数据属性的值称为属性数据。属性数据一般设置为一些有实际意义的值,如在某点处的温度(用一个数值表示),或在某点处所受的力(用三个数值表示)等。点或单元的属性数据是以数据数组(vtkDataArray)的形式进行存储的,根据数据值类型的不同,具体是存储 在vtkDataArray的子类中,如vtkFloatArray或vtkIntArray等。数组的每个元素称为元组,对应着但个点或单元的属性数据。每个元组可以有多个分量(Component),例如速度值就有分别沿着x,y,z轴的三个分量。数组的长度必须与点或单元的个数相同,这样才能保证与点或单元一一对应。

  在插入各个数据前,元组的个数可以不指定。这样的话,就必须调用名字前缀为Insert的方法插入数据(注意最终插入的元组个数必须等于点或单元的个数)。如果制定了元组个数的话,就可以调用名字前缀为Set的方法,该方法相对较快些。方法名后缀的数字表示的是元组中分量的个数,该数字与SetNumberOfComponents()参数一致,默认分量个数为1.设定每个元组数据时,需提供若干个参数,第一个是点ID号,之后是元组各个分量的值。设置元组数据还有很多种方法可供选择。

  首先需要调用数据集的方法GetPointData()或者GetCellData()获取点或单元数据,接着调用方法SetScalars()和SetVectors()将数据数组作为特殊属性数据存储。这两个方法分别设置的是标量属性数据和矢量属性数据(其他特殊属性数据还包括法向量属性数据、纹理坐标属性数据和张量属性数据,分别用方法SetNormals()、SetTCoords()和SetTensors()设置)。最后调用AddArray()将数据数组作为一般属性数据添加进数据集中。该方法可以多次调用从而添加多个数据数组。正是由于一般属性数据没有数量上的限制,所以使用字符串名字来进行区分会方便些。

  在VTK中用vtkPointData类和vtkCellData类表达数据集属性,它们是类vtkFieldData的子类,构成数据集的每个点(或单元)和属性数据之间存在一对一的关系,如一个数据集由N个点(或单元)构成,那么必须有N个属性数据和这N个点(或单元)一一对应,通过点的ID号就可以对该点的属性数据进行访问,例如在数据集aDataSet中访问ID号为129的点的标量值时(假设标量数据已被定义且不为空)使用如下方法: 

aDataSet->GetPointData()->GetScalars()->GetScalar(55)。

几何结构points和拓扑结构Cell数据。

点和拓扑结构的指定:

属性数据的指定:

 先用5个空间中的点,用构建了一个长方形和一个三角形:

然后给这些点和cell加入颜色属性设置:


vtkFieldData

vtkFieldData用来存储数据的属性数据,该数据是对拓扑结构和几何结构信息的补充。属性数据可以是某个空间点的温度或某个单元的质量等。在vtk中与数据集的点数据相关联的属性数据用vtkPointData表达,与单元数据相关联的属性数据用vtkCellData表达。 

 vtkFieldData表示和操作数据的字段。字段的模型是一个m × n的数据值矩阵,其中m是元组的数量,n是组件的数量。(元组是矩阵中包含n个元素的一行。)该字段假定是由一个或多个数据数组组成的集合,其中数组中的数据是不同类型的(例如,int, double, char等),并且每个数组中可能有不同数量的组件。注意,假设每个数据数组的长度为“m”(即元组的数量),这通常对应于数据集中的点或单元格的数量。此外,每个数据数组必须有一个字符串名称。(用于操作数据。)


vtkDataSetAttributes是一个用于表示和操作属性数据(例如,标量、向量、法线、纹理坐标、张量、全局id、谱系id和字段数据)的类。这为vtkFieldData增加了从字段中选择一个数组作为每个属性类型的当前活动数组的能力。

此外,vtkDataSetAttributes提供了筛选调用的方法,这些调用通过字段传递数据、将数据复制到字段中以及从字段中插入数据。PassData将整个数组从源传递到目标。复制将元组的某个子集从源传递到目标。Interpolate使用提供的权重从源数据中选择的元组进行插值,以在目标数据中生成新的元组。每个属性类型都有传递、复制和插值“复制”标志,即可以在目标中设置,以选择将哪些属性数组从源传输到目标。

最后,该类提供了一种机制来确定一组源具有哪些共同属性,并将元组从源复制到目标,只针对所有源都拥有的那些属性。

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

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

相关文章

学生宿舍智能控电柜安装调试技术

学生宿舍智能控电柜安装调试石家庄光大远通电器有限公司宿舍控电限电管理系统是一种用于管理学生宿舍用电的智能系统,主要功能包括: 1.实时监控和控制:该系统能够实时监测和记录宿舍的用电情况,包括电器使用情况、电量消耗等。管理人员可以通过电脑或手机…

探索酷开科技独特魅力|加入酷开会员让观影之旅更畅快|酷开系统

你是否渴望一场震撼心灵的观影之旅?不妨走进酷开系统的世界,徜徉在剧集的海洋,满足无限观影的渴望!还在担心剧荒吗?还在为无聊的周末发愁吗酷开系统为你赶走无聊,它拥有海量的影视资源,4大片库、…

nginx详解(持续更新)

nginx定义 nginx安装 nginx目录 程序相关命令 服务相关命令 虚拟主机(server) 路由匹配(location) 代理(proxy_pass) 正向代理 反向代理 负载均衡(upstream) 负载均衡策略 动静分…

C++ 简单模拟实现 STL 中的 list 与 queue

目录 一,list 1, list 的节点与迭代器 2,list 的数据结构、一些简单的功能、构造函数 3,list 的对元素操作 4,C 11 的一些功能 5,完整代码: 二,queue 一,list std…

开源 OLAP 及其在不同场景下的需求

目录 一、开源 OLAP 综述 二、OLAP场景思考 2.1 面向客户的报表 2.2 面向经营的报表 2.3 末端运营分析 2.4 用户画像 2.5 订单分析 2.6 OLAP技术需求思考 三、开源数据湖/流式数仓解决方案 3.1 离线数仓体系——Lambda架构 3.2 实时数据湖解决方案 3.3 实时分析解决…

Java毕业设计-基于springboot开发的校园台球厅人员与设备管理系统-毕业论文+答辩PPT(附源代码+演示视频)

文章目录 前言一、毕设成果演示(源代码在文末)二、毕设摘要展示1、开发说明2、需求分析3、系统功能结构 三、系统实现展示1、系统功能模块2、管理员功能模块3、用户功能模块 四、毕设内容和源代码获取总结 Java毕业设计-基于springboot开发的校园台球厅人…

Linux-1.常见指令以及权限理解

目录 本节目标 使用 XShell 远程登录 Linux 关于 Linux 桌面 下载安装 XShell 查看 Linux 主机 ip 使用 XShell 登陆主机 XShell 下的复制粘贴 Linux下基本指令 登录Linux服务器 新建多用户 全屏 1.快速认识5~6个命令 2.详细谈论课件的所有指令 01. ls 指令 02…

初识redis(一)

前言 引用的是这本书的原话 Redis[1]是一种基于键值对(key-value)的NoSQL数据库,与很多键值对数据库不同的是,Redis中的值可以是由string(字符串)、hash(哈希)、list(列…

33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查

33.HarmonyOS App(JAVA)鸿蒙系统app数据库增删改查 关系数据库 关系对象数据库(ORM) 应用偏好数据库 分布式数据库 关系型数据库(Relational Database,RDB)是一种基于关系模型来管理数据的数据库。HarmonyOS关系型…

Pandas与Jupyter Notebook的完美结合【第153篇—数据分析】

👽发现宝藏 前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【点击进入巨牛的人工智能学习网站】。 利用Python进行数据分析:Pandas与Jupyter Notebook的完美结合 在数据科学和分析…

职场口才提升之道

职场口才提升之道 在职场中,口才的重要性不言而喻。无论是与同事沟通协作,还是向上级汇报工作,亦或是与客户洽谈业务,都需要具备良好的口才能力。一个出色的职场人,除了拥有扎实的专业技能外,还应具备出色…

web自动化测试系列-selenium的安装和运行(一)

目录 web自动化系列之如何安装selenium 1.web自动化中的三大亮点技术 2.web自动化能解决什么问题 ? 3.为什么是selenium ? 4.selenium特点 5.selenium安装 6.下载浏览器及驱动 7.测试代码 web自动化系列之如何安装selenium web自动化 ,一个老生…

【C++】vector介绍

个人主页 : zxctscl 如有转载请先通知 文章目录 1. 前言2. vector的介绍3. Member functions3.1 (constructor)3.2 (destructor) 4. Capacity4.1 resize4.2 reserve4.3 shrink_to_fit 5. vector 增删查改5.1 push_back5.2 insert5.3 pop_back5.4 find5.5 erase 1. 前…

【C++】模板与泛型编程

文章目录 1. 泛型编程2. 函数模板2.1 函数模板概念2.2 函数模板格式2.3 函数模板的原理2.4 函数模板的实例化2.5 模板参数的匹配原则 3. 类模板3.1 类模板的定义格式3.2 类模板的实例化 4. 非类型模板参数5. 模板的特化5.1 概念5.2 函数模板特化5.3 全特化5.4 偏特化5.5 类模板…

Docker 搭建Redis集群

目录 1. 3主3从架构说明 2. 3主3从Redis集群配置 2.1关闭防火墙启动docker后台服务 2.2 新建6个docker容器实例 2.3 进去任意一台redis容器,为6台机器构建集群关系 2.4 进去6381,查看集群状态 3. 主从容错切换迁移 3.1 数据读写存储 3.1.1 查看…

【JDBC编程】基于MySql的Java应用程序中访问数据库与交互数据的技术

꒰˃͈꒵˂͈꒱ write in front ꒰˃͈꒵˂͈꒱ ʕ̯•͡˔•̯᷅ʔ大家好,我是xiaoxie.希望你看完之后,有不足之处请多多谅解,让我们一起共同进步૮₍❀ᴗ͈ . ᴗ͈ აxiaoxieʕ̯•͡˔•̯᷅ʔ—CSDN博客 本文由xiaoxieʕ̯•͡˔•̯᷅ʔ 原创 CSDN …

java switch用法

满足那个条件,就从那个入口进入,没有break就继续(是这样设计的,需要自己加break;),一般都是要加break的。 switch (表达式) 表达式只能是【整型、char、String.】 import java.util.Scanner;public class…

微服务day07 -- ES集群

4.集群 单机的elasticsearch做数据存储,必然面临两个问题:海量数据存储问题、单点故障问题。 海量数据存储问题:将索引库从逻辑上拆分为N个分片(shard),存储到多个节点 单点故障问题:将分片数…

Review(一)

🌈个人主页:Rookie Maker 🔥 系列专栏:Rookie review 🏆🏆关注博主,随时获取更多关于IT的优质内容!🏆🏆 😀欢迎来到小田代码世界~ &#x1f601…

DRC检查及丝印的调整

DRC检查及丝印的调整 综述:本文主要讲述AD软件中DRC检查、丝印的调整以及logo的添加的相关步骤,附加logo添加的脚本链接和大量操作图片,使步骤详细直观。 1. 点击“工具”→“设计规则检查”→“运行DRC”。(一开始可以只开启电…