VTK基本数据结构之数据的存储和表达

VTK学习-VTK基本数据结构 写在前面:这一篇博客我将根据自己的理解,把书本上的内容进行一个知识轮廓的提取,以便能明白繁杂的各种数据结构之间的关系。以便自己后面实际用到时能够提纲挈领,快速明白要找到的问题在哪里。 当然也可以参考专业的作者DolingStudio博客的解释说明: 06-VTK基本数据结构(1) 06-VTK基本数据结构(2) 06-VTK基本数据结构(3) 06-VTK基本数据结构(4) 06-VTK 阅读详情

vtkDataArray

  VTK中的内存分配采用连续内存,可以快速地创建、删除和遍历,称之为数据数组(Data Array),用类vtkDataArray来实现。数组数据的访问是基于索引的,与C++一样,从零开始计数。以vtkFloatArray类来说明如何在VTK中实现连续内存的数据数组。
  如下图,变量Array是一个指向浮点型数组的指针,数组的长度由变量Size指定,由于数组的长度是动态增加的,所以当存储数据的数组长度超出指定的长度时,会自动触发Resize()操作来调整数组的长度,是数组的长度变成原来的两倍。MaxId是一个整型的偏移量,用来定义最后一个被插入的数据的索引。如果没有数据插入,MaxId等于-1。
  
这里写图片描述

  许多可视化数据是由多个数据分量组成的,如RGB颜色数据由红、绿、蓝三个分量组成。为了在连续数组中表达这一类数据,引入了元组(Tuple)的概念。元组是数据数组的子数组,用于存储数据类型相同的分量数据,元组的组分个数称为元组的大小,在给定后不会改变。Number of Components是数据数组里元组的组分个数。元组的组分个数称为元组的大小。
  以vtkPolyData为例,该类由几何数据(vtkPoints)、拓扑数据(vtkCellArray)和属性数据(vtkPointData、vtkCellData和vtkFieldData)组成,而这些数据都是通过数据数组(vtkDataArray)的形式存储。

数据对象的表达

  VTK里的数据对象是作为vtkDataArray的数组(即数据数组的数组)实现的。vtkDataObject是一种通用的可视化数据的表达,内部封装了与可视化管线的执行相关的变量和方法,包括表达数据。vtkDataObject内部有一个vtkFieldData(场数据)的实例,负责对数据的表达。
  vtkFildData存储的数据是与数据对象的属性数据相关。以vtkPolyData为例,vtkPolyData内部存储了三种类型的数据,分别是vtkPointData、vtkCellData和vtkFieldData。vtkPointData是与每一个点相关联的数据,如某点上的温度,vtkCellData是与每一个单元相关联的数据,如某个三角形单元的面积,除点和单元数据以外的数据,应该使用vtkFieldData。

总结

vtkDataObject

VTK中的数据一般是以数据对象的形式表现的,vtkDataObject是VTK可视化数据最常用的表达形式,数据对象表现的数据可被可视化管线所处理,当数据对象组织成一种结构以后,这些数据才能被VTK的可视化算法处理。

vtkDataArray

数据数组vtkDataArray及其子类是建立VTK数据对象的基础。不同类型的数据对象都含有几何结构和拓扑结构信息,而这些结构信息的存储就是使用vtkDataArray及其子类,比如vtkPolyData里的vtkCellArray存储拓扑结构信息。

vtkFieldData

数据集里的属性数据是对拓扑结构和几何结构信息的补充。与数据集的点数据相关联的属性数据用vtkPointData来表达,与单元数据相关联的属性数据用vtkCellData来表达。二者都派生自vtkDataSetAttributes,而vtkDataSetAttributes派生自vtkFildData。换而言之,可以使用vtkFieldData来存储各种属性数据。

06-VTK基本数据结构(5) 6.6 数据集的存储与表达 可视化数据自身的特点决定了数据对象内存的分配与管理必须谨慎处理才有可能创建出高效的可视化系统。VTK中对绝大多数的数据对象的内存分配采用连续内存,连续内存的结构可被快速地创建、删除和遍历,称为Data Array (数据数组),用类vtkDataArray实现。 6.6.1 vtkDataArray 数据数组的访问是基于索引的,从零开始计数。我们以vtkFloat 阅读详情

相关推荐

vtk基本数据结构与模型构建实例讲解

vtk基本数据结构与模型构建实例讲解

pizibing880909的专栏 3117

VTK 数据类型分析

vtk

haoxiangnia111的博客 418

VTK基本数据结构

比如,图3-8 是类型为六面体 (Hexahedron)的单元,顶点列表 (由点的索引号表示即8-10-1-6-21-22-5-7,每个点通过索引号可在顶点列表中检索到该点的实际坐标值)定义了六面体单元的拓扑结构,从图3-8 中可以看出,索引为8和10的点连接就构成了六面体十条边中的一条,而 8-10-1-6 这四个点连接就构成了六面体的一个面。对于不规则结构的数据,虽然不可以像规则结构的数据那样存储,但它也有自身的优势,即在数据变化频繁的区域可以密集表示,而数据变化不频繁的区域则稀疏表示。

小道士写程序 427

【VTK基础】5-VTK数据接口对象

1 流水线 在 VTK 中数据是我们所处理的对象,而VTK 程序对数据对象的处理机制是基于流水线(pipelines)的,通过流水线的过滤器(filter)来处理数据 2 数据数组(vtkDataArray) vtkDataArray类是所有数据数组对象的抽象超类,该类自定义了很多应用程序接口,可以说vtkDataArray 是VTK 中数据对象建立的基础,数据数组用来存储连续的同一类型的数据,...

CCC的专栏 929

06-VTK基本数据结构(4)

6.5 不同类型的数据集 至此,我们知道,数据集由组织结构和与之关联的属性数据构组成,组织结构包括拓扑结构和几何结构。数据集的类型是由它的组织结构决定,同时数据集的类型决定了点和单元之间的相互关系,图6.11列出了常见的数据集类型,图6.12是对应的类的继承图。 依据数据集的结构特征,可分为规则结构和不规则结构的数据。如果组成数据集的点是规则的,则称该数据集的几何是规则的,如果组成数据集的单元

东灵工作室 1万+

vtkDataArray vtkFloatArray

vtkFloatArray 继承了vtkDataArray vtkDataArray存放了连续元素,每components个连续元素组成一个tuple vtkFloatArray可以作为vtkPoints的内部实际存放数据的载体 #include <vtkSmartPointer.h> #include <vtkPoints.h> #include <vtkFloatArray.h> #include <vtkNew.h> #include <i

C++ 爱好者 make_it_simple888 1606

【VTK学习笔记-04】VTK基本数据结构

学习教程:《VTK图形图像开发进阶》张晓东,罗火灵 特别感谢:东灵工作室(1)离散性。(2)数据具有规则或不规则的结构(结构化与非结构化)(3)数据具有维度在VTK中,数据一般以数据对象Data Object,类vtkDataObject的形式表现,这是VTK中可视化数据最常用的表达形式。数据对象是数据的集合,只有当数据对象被组织成一种结构后,才能被VTK提供的可视化算法所处理。在实际应用中,根据具体的可视化数据选择具体的子类来实现可视化。将数据对象组织成一种结构并赋予相应的属性值,就形成了数据集。vtkD

m0_51141265的博客 719

ActiViz中的数据存储vtkDataArray

在VTK中,vtkDataArray类是一个非常重要的类,用于表示和操作数据数组。它是VTK数据模型的基础之一,用于存储和操作各种类型的数据,例如标量、向量、纹理坐标等。

仰望星空的博客 379

VTK随笔四:VTK基本数据结构

VTK随笔四:VTK基本数据结构

u012959478的博客 2144

VTK:vtkCellArray的用法详解

vtkCellArray是VTK中的一个类,用于存储和管理图形数据的拓扑结构。vtkCellArray使用一个整数数组来存储图元的顶点索引,这种紧凑的数据结构使得对图形数据的操作更加高效。通过上述示例代码,我们可以了解到vtkCellArray的基本用法,并学会如何使用vtkCellArray创建和管理图形数据的拓扑结构。下面是一个使用vtkCellArray的示例代码,其中创建了一个包含两个三角形的vtkPolyData对象。下面列举了一些vtkCellArray类的主要方法,以及它们的作用和用法。

2301_79326588的博客 1222

VTK编程指南<七>:VTK基本数据结构:数据对象和数据集

VTK编程指南<七>:VTK基本数据结构:数据对象和数据集

欧特GO 1229

06-VTK基本数据结构(1)

6、VTK基本数据结构 我们已经学习了VTK的一个重要概念——可视化管线,了解了VTK数据的流动过程。好比我们做一道菜,在做每一道菜之前,首先要掌握这道菜的做法,什么时候放盐什么时候放酱油等调料,除了需要弄清楚做每一道菜的流程,还需要了解所做的每一道菜的原料,比如有些原料是要蒸出来才比较好吃,有些则可能会用炖的方法才比较可口,只有掌握做菜的流程以及了解菜的原料的特点,最后做出来的菜才可口美味。如

东灵工作室 1万+

VTK编程指南<十>:VTK不同类型数据集及数据存储表达

VTK编程指南<十>:VTK不同类型数据集及数据存储表达

欧特GO 1682

VTK学习之三(VTK基本数据结构、一个设置数据的几何结构、拓扑结构、属性的例子)

前言 数据结构对于可视化领域是非常重要的一个部分,我们需要将自己的数据读取,转换成VTK能够识别的数据这样才能实现数据的可视化,同时了解了这些数据结构对我们开发出高效、有针对性的的可视化应用程序非常重要。 可视化数据的基本特点 1、数据离散性 世界是连续的、无限的,但是能被计算机处理的数据都是离散的,数据基本上是以离散点的形式在计算机种进行存储,这就需要对现实世界的物体进行采样,数据获取设备基本上是每隔一定的间距获取一个点,这个过程就是一个离散的过程,所以数据具有离散性。 2、数据规则性 数据还

qq_42570058的博客 3329

卡诺图化简法注意事项+竞争冒险知识点总结

今天反思以下卡诺图化简法中的注意事项。 卡诺图看起来简单,但如果不熟悉的话很容易出错,因此要对画圈的规则比较熟悉。

weixin_42415266的博客 1万+

STM32_WS2811驱动

STM32的WS2811驱动

健身房 2840

VTK基本数据结构之数据对象和数据集

针对可视化领域的特点,VTK定义了种类丰富的数据结构。我们必须了解基本数据结构。 1、数据对象和数据集  在VTK中,数据一般以数据对象(Data Object, 类vtkDataObject)的形式表现,这是VTK里可视化数据最常用的表达形式。数据对象是数据的集合,数据对象表现的数据是可以被可视化管线处理的数据,只有当数据对象被组织成一种结构后,才能被VTK提供的可视化算法所处理。VTK

阿兵-AI医疗的专栏 4164

从零开始掌握OBD-II:汽车诊断开发的核心技术与实战解析

本文深入解析OBD-II汽车诊断系统的核心技术,包括ECU通信协议、故障码解析及诊断工具开发实战。通过详细的协议分析和代码示例,帮助开发者快速掌握汽车诊断开发技能,实现从零到精通的进阶。特别适合从事汽车电子开发和OBD检测的技术人员参考学习。

weixin_42528780的博客 438

VTK知识学习(20)- 数据的存储与表达

如图A所示,场数据可以看作数据数组的数组,数组里的每一个元素都是一个数组,数组的类型、长度、元组的大小和名称等都可以各不相同。如图所示,变量 Aray 是一个指向浮点型数组的指针,数组的长度由变量 Size 指定,由于数组的长度是动态地增加的,所以当存储数据的数组长度超出指定的长度时,会自动触发 ResizeO)操作来调整数组的长度,使数组的长度变成原来的两倍,MaxId是一个整型的偏移量,用来定义最后个被插入的数据的索引。内部有一个vtkFieldData(场数据)的实例,负责对数据的表达。

weixin_45114627的博客 1403

【QT开发教程】使用Qt进行NFC编程

近场通信(NFC,Near Field Communication)技术广泛应用于现代设备中,例如智能手机、支付终端和门禁系统。Qt提供了一套完整的NFC模块,使开发者可以轻松地在应用程序中实现NFC功能。本文将介绍如何在Qt中进行NFC编程,包括基本概念、使用方法以及一些实际的示例。

科技改变人类,技术成就未来 1469

【异常】OpenClaw总Token超限400报错400 Total tokens of image and text exceed max message tokens. Request id:

摘要: 多模态大模型调用中,图文总Token超限导致的400报错是常见问题。本文分析了该报错的触发原因(文本+图片Token总和超出接口限额),并从技术层面解释了多模态Token的计数规则。解决方案分为三个层次:1)紧急修复(精简文本、压缩图片、拆分请求);2)标准化根治(预校验Token、图片预处理、限额适配);3)进阶兜底(分块处理、模型升级、容错机制)。通过前置管控与源头优化,可有效解决并预防此类问题,提升业务稳定性。

奶爸的编程之路,也就一周冷个三天 832

VTK图形图像开发进阶-学习笔记 03 VTK的基本数据结构

3.1可视化数据的基本特点 (1)离散性 (2)数据具有规则或者不规则的结构(结构化与非结构化) (3)数据具有维度 3.2 数据对象和数据集 3.2.1 vtkDataObject VTK中,数据一般以数据对象(Data Object,类vtkDataObjiect)的形式表现,这是VTK里可视化数据最常用的表达形式。数据对象是数据的集合,数据对象表现的数据是可以被可视化管线处理的数据,只有当数据对象被组织成一种结构后,才能被VTK提供的可视化算法所处理。 3.2.2 vtkDa

wangxingxing321的博客 1954

Windows10下安装VMware16虚拟机

由于本人系统为Windows 10 家庭中文版,无法安装Linux子系统WSL,虽然网上也有强制安装的方法,但为保险起见,还是把之前的VMware虚拟机重新进行安装,并浅浅记录一下安装过程。

沉香best的博客 863

【QT+VTK 学习笔记】04:VTK基本数据结构

前言 “VTK图形图像开发进阶_张晓东_罗火灵”的学习笔记。 学习资料 VTK官网学习地址:https://vtk.org/doc/nightly/html/ 学习笔记 可视化数据的基本特点 (1) 离散性 为了让计算机能够获取、处理和分析数据,必须对无限、连续的空间体进行采样,生成 有限的釆样数据点,这些数据以离散点的形式存储,釆样的过程是一个离散化的过程。 (2)数据具有规则或不规则的结构(结构化与非结构化) 对于规则结构的数据,存储时不必存储所有数据点,只需存储起始点、相邻点之间的间隔以及点的总数就可

qq_37373742的博客 2290

详解AXI4-Lite接口(3)--AXI4-Lite接口IP源码仿真及分析(Master接口)

通过本文您会学到:1、了解AXI4-Lite_Master接口的逻辑实现;2、加深Xilinx IP、仿真工具的使用;3、提高阅读时序图的能力。

孤独的单刀 6446

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

上一篇: VTK基本数据结构之数据对象和数据集
下一篇: VTK交互之Widget
暮-成-雪
博客等级 码龄12年 5328粉丝 319原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值