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

手机网站 微信温州seo博客

手机网站 微信,温州seo博客,给我免费播放片动漫在线观看,运营和广告投放的区别1、数据的存储 1)、vtkDataArray VTK中的内存分配采用连续内存,可以快速地创建、删除和遍历,称之为数据数组(DataArray),用类 vtkDataArray 实现。数组数据的访问是基于索引的,从零开始计数。 以 vtkFloatArray 类来说明如何在 …

1、数据的存储

1)、vtkDataArray

VTK中的内存分配采用连续内存,可以快速地创建、删除和遍历,称之为数据数组(DataArray),用类 vtkDataArray 实现。数组数据的访问是基于索引的,从零开始计数。
以 vtkFloatArray 类来说明如何在 VTK 中实现连续内存的数据数组。

如图所示,变量 Aray 是一个指向浮点型数组的指针,数组的长度由变量 Size 指定,由于数组的长度是动态地增加的,所以当存储数据的数组长度超出指定的长度时,会自动触发 ResizeO)操作来调整数组的长度,使数组的长度变成原来的两倍,MaxId是一个整型的偏移量,用来定义最后个被插入的数据的索引。如果没有数据插入,MaxId等于-1,否则,Maxld的值介于0和 Size之间,即0≤MaxId<Size。

连续数组的实现


此外,许多可视化数据是由多个数据分量组成的,如RGB颜色数据由红、绿、蓝三个分量组成,为了在连续数组中表达这一类数据,引入了元组(Tuple)的概念。元组是数据数组的子数组,用于存储数据类型相同的分量数据,图所示的NumberOfComponents,表示的就是数据数组里元组的组分个数。元组的组分个数称为元组的大小,在给定后不会改变,图 所示的数据数组由N个元组组成,每个元组由三个组分组成。

2)、vtkDataArray 及其子类是建立 VTK 数据对象的基础

以 vtkPolyData 为例,该类由几何数据(vtkPoints)、拓扑数据(vtkCellArray)和属性数据(vtkPointData、vtkCellData 和vtkFieldData)组成,而这些数据都是通过数据数组(vkDataArray)的形式存储。

vtkDataArray可以存储标量数据,也可以存储向量数据。

因此使用 vtkDataAray 时需要指定元组的大小。

例如,点、矢量和法向量等属性数据,元组的大小是3,而张量属性数据的元组大小是9(即3x3的矩阵),标量属性数据对元组的大小则没有任何要求。

对于处理标量属性数据的算法,通常都是只处理标量每一个元组数据的第一个组分。

VTK提供了将多组分的数据数组分离成单一组分的数据数组的类 vtkSplitField,以及将单一组分的数据数组合并成多组分的数据数组的类vtkMergeFields.

3)、示例
 private void  UseDataArray(){vtkFloatArray array = vtkFloatArray.New();array.SetNumberOfComponents(1);array.SetNumberOfTuples(10);array.SetComponent(5, 0, 10.0);array.SetTuple1(6, 9.0);double b = array.GetComponent(5, 0);Console.WriteLine(" array.GetComponent:" + b);}

示意如何创建固定长度的数据数组,首先是设置元组的组分个数为1以及总的元组个数为10。、方法SetComponent()和 GetComponent()分别用于设置及获取元组的值。
SetComponent(vtkIdType i, int j,double c):指定第i个元组的第j个组分的值为c。
GetComponet(vtkIdType i,intj):获取第i个元组的第j个组分的值,由函数返回值返回。

除了可以创建固定长度的数据数组,vtkDataArray也提供了动态创建数据数组的方法,代码如下所示:

  vtkFloatArray array2 = vtkFloatArray.New();array2.SetNumberOfComponents(1);array2.InsertNextTuple1(5);array2.InsertNextTuple1(10);double bb = array2.GetComponent(1, 0);Console.WriteLine(" array.GetComponent:" + bb);

代码首先设置每个元组的组分个数为1,方法InsertNextTuple1()用于插入一个单组分的元组,连续调用两次即为插入两个元组,其值分别为5和10,类似的方法还有
InsertNextTuple2(),InsertNextTuple3(),InsertNextTuple4(),InsertNextTuple9()等。

4)、各种数据类型

可视化数据有各种各样的类型,如简单的浮点型、整型、字节型和双精度型等,复杂的特征字符串和多维标识符等。既然有这么多种数据类型,那么数据数组是如何操作和表达这些数据的呢?

VTK通过抽象数据对象(AbstractData Obiect)提供运行时解决方案以及使用C++编译时动态绑定的方法来解决这个问题。如图 3-15 所示,vtkDataAray 是一个抽象基类,其子类实现特定类型的数据数组及相关操作。

数据数组对象

 2、数据对象的表达

VTK 里的数据对象是作为vtkDataArray的数组(即数据数组的数组)实现的。vtkDataObiect 是一种通用的可视化数据的表达,可视化算法基本都没有直接处理vtkDataObject 类型的数据,在处理某一类数据时,一般都要求数据内部具有某种组织结构。vtkDataObject 内部封装了与可视化管线的执行相关的变量和方法,包括表达数据。在vtkDataObiect 内部有一个 vtkFieldData(场数据)的实例,负责对数据的表达。如图A所示,场数据可以看作数据数组的数组,数组里的每一个元素都是一个数组,数组的类型、长度、元组的大小和名称等都可以各不相同。

图A    vtkDataObject数据对象的表达

图 B是类 vtkFieldData的继承图,从类的名字能够推断出,vtkFieldData 存储的数据是与数据对象的属性数据相关的。以vtkPolyData为例,vtkPolyData内部存储了三种类型的数据,分别是 vtkPointData、vtkCellData和 vtkFieldData。vtkPointData 是与每一个点相关联的数据,如某点上的温度值;vtkCellData是与每一个单元相关联的数据,如某个三角形单元的面积:除点和单元数据以外的数据,应该使用vtkFieldData,如 vtkPolyData 模型的质心等。

图B  vtkFieldData类的继承图

 3、小结

vtkDataArray 采用连续内存,可以快速地创建、删除和遍历。
 vtkDataObject是一种通用的可视化数据的表达,可视化算法基本都没有直接处理这个类型的数据,在处理某一类数据时,一般都要求数据内部具有某种组织结构。
         内部封装了与可视化管线的执行相关的变量和方法,包括表达数据。。
         内部有一个vtkFieldData(场数据)的实例,负责对数据的表达。
                      场数据可以看作数据数组的数组,数组里的每一个元素都是一个数组,数组的类型、长度、元组的大小和名称等都可以各不相同。

http://www.wangmingla.cn/news/98651.html

相关文章:

  • 怎样自己创造网站2022年最新十条新闻
  • 网站建设买了服务器后怎么做百度关键词搜索推广
  • 企业黄页88网自己怎么优化网站
  • 武汉本土互联网站seo顾问收费
  • 公司网站服务器租赁百度搜索如何去广告
  • 网站建设问题整改报告如何做网络推广外包
  • 自己做网站需要买什么百度24小时人工客服
  • 网络优化是什么专业网页优化包括
  • 商业网站设计方案模板软文交易平台
  • 合肥设计工作室济南搜索引擎优化网站
  • 招聘美容师在哪个网站做招聘最有效不需要验证码的广告平台
  • dw做网站有哪些用处青岛网站优化公司
  • 中英文网站制作重庆seo搜索引擎优化优与略
  • 网站外链接如何做站长工具seo综合查询怎么关闭
  • php网站怎么做自适应如何进行网络推广和宣传
  • 做带字头像的网站网站如何优化一个关键词
  • 南宁重大项目签约深圳seo公司助力网络营销飞跃
  • 网站商城前台模板seo免费优化
  • 西安通程建设工程 网站永久免费自助建站系统
  • 广东省住房和城乡建设厅官网网址中和seo公司
  • 中山营销网站建设费用网络营销师培训费用是多少
  • 做网站就要租服务器当日网站收录查询统计
  • 网站改版效果图怎么做信息流广告
  • 赣州做网站j手机app免费制作平台
  • 徐州建设工程招投标官方网站精准引流获客软件
  • 长春站最新发布经典软文文案
  • 张家港网站建设模板长春做网站公司长春seo公司
  • 16岁的做兼职在什么网站好免费b站推广入口2023
  • 柳州哪家网站建设专业郑州seo网络营销
  • 大型门户网站制作教程最有吸引力的营销模式