上述基于vtkHexahedron网格的三维模型显示需要显式地定义每个vtkHexahedron网格,然后建立vtkUnstructuredGrid,属于非结构化网格,计算量大。这个实例采用了vtkStructuredGrid的格式,不用显式地定义每个网格,只需要定义每个节点的空间坐标就行,计算量小,显示速度快,同时还以vtkAxesActor方式添加了XYZ方向的坐标轴。采用java的具体代码如下,其中coordXYZGrid是eclipse网格种每个节点的空间坐标,values是每个网格的属性值。

private void DrawstructuredGrid(Point3D[][][] coordXYZGrid, double[][][] values, double  valueMin, double valueMax)

{

int node_nk = coordXYZGrid.length;

int node_nj = coordXYZGrid[0].length;

int node_ni = coordXYZGrid[0][0].length;

System.out.println("nk="+node_nk+" nj="+node_nj+" ni="+node_ni);

//create the points and array

vtkPoints points = new vtkPoints();

vtkDoubleArray scalars = new vtkDoubleArray();

//points.SetNumberOfPoints(node_ni * node_nj * node_nk);

for (int k = 0; k < node_nk; k++)

{

for (int j = 0; j < node_nj; j++)

{

for (int i = 0; i < node_ni; i++)

{

//points.InsertPoint(seq, coordXYZGrid[k][j][i].X, coordXYZGrid[k][j][i].Y, coordXYZGrid[k][j][i].Z);

points.InsertNextPoint(coordXYZGrid[k][j][i].X, coordXYZGrid[k][j][i].Y, coordXYZGrid[k][j][i].Z);

//scalars.InsertTuple1(seq, k);

scalars.InsertNextTuple1(values[k][j][i]);

//Console.WriteLine(“{0} {1} {2}”, coordXYZGrid[i, j, k].x, coordXYZGrid[i, j, k].y, coordXYZGrid[i, j, k].z);

//seq += 1;

}

}

}

//create the structured grid

vtkStructuredGrid grid = new  vtkStructuredGrid();

grid.SetDimensions(node_ni, node_nj, node_nk);   //ni nj nk

grid.SetPoints(points);

grid.GetCellData().SetScalars(scalars);

//create a mapper

vtkDataSetMapper mapper = new vtkDataSetMapper();

mapper.SetInputData(grid);

mapper.SetScalarRange(valueMin,valueMax);

//create the actor

vtkActor actor = new vtkActor();

actor.SetMapper(mapper);

actor.GetProperty().SetDiffuseColor(1, 1, 0);

vtkRenderer render = new vtkRenderer();

vtkRenderWindow renWin = new vtkRenderWindow();

//设置交互样式

vtkRenderWindowInteractor renwinIn = new vtkRenderWindowInteractor();

renwinIn.SetRenderWindow(renWin);

renWin.AddRenderer(render);

render.SetBackground(0, 0, 0);  //blue(0,0,1),red(1,0,0)

render.AddActor(actor);

//设置坐标轴

vtkAxesActor axesActor = new vtkAxesActor();

vtkOrientationMarkerWidget widget = new vtkOrientationMarkerWidget();

widget.SetOutlineColor(0.1, 0.1, 0.1);

widget.SetOrientationMarker(axesActor);

widget.SetInteractor(renwinIn);

widget.SetEnabled(1);

widget.InteractiveOn();

//可视化输出

render.ResetCamera();

renWin.Render();

renwinIn.Start();

}

具体显示结果如下

基于vtk结构化网格的eclipse三维地质模型相关推荐

  1. VTK:非结构化网格之UGrid

    VTK:非结构化网格之UGrid VTK:非结构化网格之UGrid 描述 代码 UGrid.cxx CMakeLists.txt VTK:非结构化网格之UGrid 描述 创建非结构化网格. 代码 UG ...

  2. VTK:非结构化网格之ClipUnstructuredGridWithPlane2

    VTK:非结构化网格之ClipUnstructuredGridWithPlane2 VTK:非结构化网格之ClipUnstructuredGridWithPlane2 描述 代码 ClipUnstru ...

  3. VTK:非结构化网格之ClipUnstructuredGridWithPlane

    VTK:非结构化网格之ClipUnstructuredGridWithPlane VTK:非结构化网格之ClipUnstructuredGridWithPlane 描述 代码 ClipUnstruct ...

  4. VTK:结构化网格之SGrid

    VTK:结构化网格之SGrid VTK:结构化网格之SGrid 代码 SGrid.cxx VTK:结构化网格之SGrid 代码 SGrid.cxx #include <vtkActor.h> ...

  5. VTK:结构化网格之StructuredGridOutline

    VTK:结构化网格之StructuredGridOutline VTK:结构化网格之StructuredGridOutline 描述 代码 StructuredGridOutline.cxx CMak ...

  6. VTK:结构化网格之VisualizeStructuredGrid

    VTK:结构化网格之VisualizeStructuredGrid VTK:结构化网格之VisualizeStructuredGrid 描述 代码 VisualizeStructuredGrid.cx ...

  7. VTK:结构化网格之VisualizeStructuredGridCells

    VTK:结构化网格之VisualizeStructuredGridCells VTK:结构化网格之VisualizeStructuredGridCells 代码 VisualizeStructured ...

  8. VTK:结构化网格之StructuredPointsToUnstructuredGrid

    VTK:结构化网格之StructuredPointsToUnstructuredGrid VTK:结构化网格之StructuredPointsToUnstructuredGrid 代码 Structu ...

  9. VTK:结构化网格之Vol

    VTK:结构化网格之Vol VTK:结构化网格之Vol 描述 代码 Vol.cxx CMakeLists.txt VTK:结构化网格之Vol 描述 创建图像数据集.标量数据是根据球体的方程生成的.体积 ...

最新文章

  1. webServices 应该支持Get和Post调用,在web.config应该增加以下代码
  2. 计算机考研初试复试比例,考研初试400多分,16人都被刷,计算机专业报考人太多,报应来了...
  3. (7)verilog语言编写UART接收
  4. 【干货】微信小程序如何设置背景图片
  5. 今天带你详细了解各组件原理
  6. 如何从一台铅封计算机上取走数据
  7. Pylot——跨平台的网站压力测试工具
  8. 力扣题目系列:121. 买卖股票的最佳时机
  9. 利用kd树实现最近邻搜索
  10. 中小企业CRM评测-销售管理_任我行
  11. 追寻本质还是流于形式
  12. [译]关于Android图形系统的一些事实真相
  13. drupal 7 ajax,【漏洞分析】CVE-2018-7600 Drupal 7.x 版本代码执行
  14. linux上的录屏软件下载,linux-推荐两款好用的录屏软件
  15. 简单的内网穿透接入互联网无需公网IP
  16. 纠正几个不好的工作习惯
  17. Deqin- 升级版测手速游戏
  18. 【离散数学】1. 数理逻辑
  19. 数据中心系列:SDDC普及仍任重而道远
  20. 二进制转十进制 8421运算法

热门文章

  1. TFT_eSPI使用
  2. 优雅性感之 JSON 小姐姐
  3. 内蒙古推进电子印章在政务领域的应用,易保全助力企业家轻松实现资源快变现
  4. 写一个组织架构图组件来深入认识vue函数式高阶组件
  5. 马斯克爆料Twitter裁了八成员工;OpenAI CEO:GPT-5根本不存在;小鹏被曝年终奖打0.5折 | AI一周资讯
  6. 网络流最大流算法(ISAP算法及DINIC算法)
  7. [单片机框架][bsp层][N32G4FR][bsp_uart] UART配置和使用
  8. python小海龟画房子编程_编程入门06:Python海龟绘图
  9. AI驱动的智能图形应用
  10. uniapp3.8不支持鸿蒙2.0了