grid - VTK - 非结构化网格:更改点/标记点的顺序
问题描述
我有问题将现有网格从 vtk 旧格式转换。
VTK-非结构化网格具有以下结构:
DATASET UNSTRUCTURED_ GRID
POINTS n dataType
p0x p0y p0z
p1x p1y p1z
...
p (n-1) x p (n-1) y p (n-1) z
CELLS n size
numPoints0 ,i, j, k, l,...
numPoints1 ,i, j, k, l,...
numPoints2 ,i, j, k, l,...
...
numPointsn-1 ,i, j, k, l,...
Simple Legacy Formats 5
CELL_ TYPES n
...
单元由它们的连接点 ID 及其类型指定。似乎点 ID 总是与之前块中指定的点的顺序相对应。
有没有办法以任意顺序标记点?例如,点块中的第一个条目应该对应于索引 3 而不是索引 0。
我将衷心感谢您的帮助!TIA。
解决方案
传统的 VTK 格式不支持。您将必须编写一个脚本,以便相应地重新排列您在该POINTS
部分中的点。
此外,即使在更灵活的基于 XML 的 VTU 格式中,我也看不到这种能力。所以,我建议:
- 编写一个脚本,对 [0, N-1] 中的点进行重新排序,以便在本
CELLS
节中引用它们以进行连接。 - 反之亦然,编写一个脚本,将相应地重新编号该
CELLS
部分中的连接信息。 - (可选)考虑切换到基于 XML 的格式,因为它们更灵活,具有更好的 IO 支持库 (IMHO),并允许适当的并行 IO、随机访问和可移植数据压缩。
推荐阅读
- groovy - 如何确定列表排序的方法
- ios - 在 xcode 10 中切换通话栏拉伸初始屏幕默认徽标?
- javascript - 使用node js在api中检查用户名和密码的方法有多少?
- vb.net - 复选框列表仅选择一项并取消选择其他项
- phabricator - 使用 arc arcanist 命令行编辑 phabricator 任务的父级时出错
- django - 如何从管理员中排除模型表单验证
- javascript - 如何根据父组件的状态测试子组件是否呈现?
- php - 如何使用 PHP 解析站点地图 XML 内容
- api - 在实时服务器中部署 Adonisjs+Vuejs 应用程序
- java - 有没有办法从 mysql 中获取超出 ArrayList 最大大小的记录