当前位置:   article > 正文

VTK经验分享 4. VTK数据集实例_vtkfloatarray setcomponent

vtkfloatarray setcomponent

建立数据集的方式多种多样,我们可以用编程的方式从无到地建立起一个数据集,也可以利用vtk的io功能直接从文件读取数据集。

我们首先看编程的方式,再说读文件的方式。


4.1 编程方式建立数据集

在开始建立数据集之前,我们一定要清楚:数据集有六种(请见前篇介绍),我们即将建立的这个数据集最符合哪一种?之后,我们就使用对应的vtk数据集类,运用相关api,开始建立数据集。

无论我们使用何种数据集类型,如何编程,最终的目的都是一样的:直接或者间接地指明这个数据集的几何结构、拓扑结构,和数据属性(Data Attribute)。具体来说,就是:

①. 在正交坐标系空间中,用一系列3维坐标点表示出数据集的几何结构。

②. 将这些点以某方式联系起来,从而在这个空间中划分出若干基元,表示出数据集的拓扑结构。

③. 在①步骤中指定的3维坐标点,或者②步骤中划分出的基元上,绑定有物理意义的数据(Data Attributes),这些数据可以是标量、矢量、或是张量


4.1.1 Demo1:麻雀虽小五脏俱全 -- 四个点,一个基元,也是数据集:)

对于demo来说,当然是越简单越好,越能说清楚事情越好。于是我们将建立一个仅由四个点的组成的数据集,它唯一的基元便是这四个点围起来形成的。那它属于那种数据集呢?进一步分析一下:这个数据集实际上就是一个四边形,也就是说,它是一个最基本的图元(参考前篇3.1.2),再回顾一下PolyData,它的定义是“a collection of graphics primitives”,即它是图元的集合,那我们这个数据集就是polyData了。

ps:请多注意下polyData这类数据集,虽然它的几何、拓扑结构都是不规则的,但是它本身就是由图元组成,而图元是可以直接渲染的。所以这种数据集实际上是最简洁、高效的数据集。

全部代码如下所示,关键地方请看注释。

  1. package linke;
  2. import vtk.vtkActor;
  3. import vtk.vtkCellArray;
  4. import vtk.vtkDoubleArray;
  5. import vtk.vtkFloatArray;
  6. import vtk.vtkIntArray;
  7. import vtk.vtkInteractorStyle;
  8. import vtk.vtkInteractorStyleTrackballCamera;
  9. import vtk.vtkPoints;
  10. import vtk.vtkPolyData;
  11. import vtk.vtkPolyDataMapper;
  12. import vtk.vtkRenderWindow;
  13. import vtk.vtkRenderWindowInteractor;
  14. import vtk.vtkRenderer;
  15. public class Demo1 {
  16. static {
  17. System.loadLibrary("vtkCommonJava");
  18. System.loadLibrary("vtkFilteringJava");
  19. System.loadLibrary("vtkRenderingJava");
  20. }
  21. public static void main(String[] args) {
  22. //vtk[Int/Float/Double]Array类代表了一类有规律、有意义的数据组,一般有两个作用:
  23. //①.装载表示数据集的几何结构的点集的坐标数据 —— 3Component per Tuple(点)
  24. //②.装载描述数据集的几何结构或拓扑结构的数据属性(Data Attributes)的数据 —— 标量(1Component/Tuple)、矢量(3Comps/Tuple)、张量(9)
  25. vtkFloatArray pcoords = new vtkFloatArray(); // 作用①:表示点集 —— 几何结构
  26. pcoords.SetNumberOfComponents(3); // 因为是坐标数据
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/996102
推荐阅读
相关标签
  

闽ICP备14008679号