基于vtk结构化网格的eclipse三维地质模型
上述基于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三维地质模型相关推荐
- VTK:非结构化网格之UGrid
VTK:非结构化网格之UGrid VTK:非结构化网格之UGrid 描述 代码 UGrid.cxx CMakeLists.txt VTK:非结构化网格之UGrid 描述 创建非结构化网格. 代码 UG ...
- VTK:非结构化网格之ClipUnstructuredGridWithPlane2
VTK:非结构化网格之ClipUnstructuredGridWithPlane2 VTK:非结构化网格之ClipUnstructuredGridWithPlane2 描述 代码 ClipUnstru ...
- VTK:非结构化网格之ClipUnstructuredGridWithPlane
VTK:非结构化网格之ClipUnstructuredGridWithPlane VTK:非结构化网格之ClipUnstructuredGridWithPlane 描述 代码 ClipUnstruct ...
- VTK:结构化网格之SGrid
VTK:结构化网格之SGrid VTK:结构化网格之SGrid 代码 SGrid.cxx VTK:结构化网格之SGrid 代码 SGrid.cxx #include <vtkActor.h> ...
- VTK:结构化网格之StructuredGridOutline
VTK:结构化网格之StructuredGridOutline VTK:结构化网格之StructuredGridOutline 描述 代码 StructuredGridOutline.cxx CMak ...
- VTK:结构化网格之VisualizeStructuredGrid
VTK:结构化网格之VisualizeStructuredGrid VTK:结构化网格之VisualizeStructuredGrid 描述 代码 VisualizeStructuredGrid.cx ...
- VTK:结构化网格之VisualizeStructuredGridCells
VTK:结构化网格之VisualizeStructuredGridCells VTK:结构化网格之VisualizeStructuredGridCells 代码 VisualizeStructured ...
- VTK:结构化网格之StructuredPointsToUnstructuredGrid
VTK:结构化网格之StructuredPointsToUnstructuredGrid VTK:结构化网格之StructuredPointsToUnstructuredGrid 代码 Structu ...
- VTK:结构化网格之Vol
VTK:结构化网格之Vol VTK:结构化网格之Vol 描述 代码 Vol.cxx CMakeLists.txt VTK:结构化网格之Vol 描述 创建图像数据集.标量数据是根据球体的方程生成的.体积 ...
最新文章
- webServices 应该支持Get和Post调用,在web.config应该增加以下代码
- 计算机考研初试复试比例,考研初试400多分,16人都被刷,计算机专业报考人太多,报应来了...
- (7)verilog语言编写UART接收
- 【干货】微信小程序如何设置背景图片
- 今天带你详细了解各组件原理
- 如何从一台铅封计算机上取走数据
- Pylot——跨平台的网站压力测试工具
- 力扣题目系列:121. 买卖股票的最佳时机
- 利用kd树实现最近邻搜索
- 中小企业CRM评测-销售管理_任我行
- 追寻本质还是流于形式
- [译]关于Android图形系统的一些事实真相
- drupal 7 ajax,【漏洞分析】CVE-2018-7600 Drupal 7.x 版本代码执行
- linux上的录屏软件下载,linux-推荐两款好用的录屏软件
- 简单的内网穿透接入互联网无需公网IP
- 纠正几个不好的工作习惯
- Deqin- 升级版测手速游戏
- 【离散数学】1. 数理逻辑
- 数据中心系列:SDDC普及仍任重而道远
- 二进制转十进制 8421运算法
热门文章
- TFT_eSPI使用
- 优雅性感之 JSON 小姐姐
- 内蒙古推进电子印章在政务领域的应用,易保全助力企业家轻松实现资源快变现
- 写一个组织架构图组件来深入认识vue函数式高阶组件
- 马斯克爆料Twitter裁了八成员工;OpenAI CEO:GPT-5根本不存在;小鹏被曝年终奖打0.5折 | AI一周资讯
- 网络流最大流算法(ISAP算法及DINIC算法)
- [单片机框架][bsp层][N32G4FR][bsp_uart] UART配置和使用
- python小海龟画房子编程_编程入门06:Python海龟绘图
- AI驱动的智能图形应用
- uniapp3.8不支持鸿蒙2.0了