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

建立数据集的方式多种多样,我们可以用编程的方式从无到地建立起一个数据集,也可以利用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这类数据集,虽然它的几何、拓扑结构都是不规则的,但是它本身就是由图元组成,而图元是可以直接渲染的。所以这种数据集实际上是最简洁、高效的数据集。

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

package linke;

import vtk.vtkActor;
import vtk.vtkCellArray;
import vtk.vtkDoubleArray;
import vtk.vtkFloatArray;
import vtk.vtkIntArray;
import vtk.vtkInteractorStyle;
import vtk.vtkInteractorStyleTrackballCamera;
import vtk.vtkPoints;
import vtk.vtkPolyData;
import vtk.vtkPolyDataMapper;
import vtk.vtkRenderWindow;
import vtk.vtkRenderWindowInteractor;
import vtk.vtkRenderer;

public class Demo1 {
	
	static {
		System.loadLibrary("vtkCommonJava");
		System.loadLibrary("vtkFilteringJava");
		System.loadLibrary("vtkRenderingJava");
	}
	
	public static void main(String[] args) {
		//vtk[Int/Float/Double]Array类代表了一类有规律、有意义的数据组,一般有两个作用:
		//①.装载表示数据集的几何结构的点集的坐标数据  —— 3Component per Tuple(点)
		//②.装载描述数据集的几何结构或拓扑结构的数据属性(Data Attributes)的数据 —— 标量(1Component/Tuple)、矢量(3Comps/Tuple)、张量(9)
		vtkFloatArray pcoords = new vtkFloatArray(); // 作用①:表示点集 —— 几何结构
		pcoords.SetNumberOfComponents(3); // 因为是坐标数据
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值