【问题标题】:XTK - Add scalar field to vtk meshXTK - 将标量场添加到 vtk 网格
【发布时间】:2013-09-18 14:29:59
【问题描述】:

我们正在尝试将标量值与从文件读取的 VTK 网格中的单元格/点相关联。我们知道可以使用 FreeSurfer 不同的曲率文件 - CRV (如示例 12 -http://lessons.goxtk.com/12/ 所示)

我们的问题是如何从 vtk 文件(块 PointData 和 CellData)中设置标量值?如果这不可能,有没有办法直接将标量数组设置为 X.mesh(任何示例)?

感谢和抱歉英语不好:-)

保罗

【问题讨论】:

    标签: vtk scalar xtk


    【解决方案1】:

    尝试使用 VtkProbeFiler。使用此过滤器,您可以将标量值与点相关联。

    【讨论】:

      【解决方案2】:

      我设法添加了一些在 XTK 第 12 课的 js 的 L15 中提到的标量。 比如:

      var mesh = new X.mesh();
      mesh.file = 'mesh.vtk';
      renderer.onShowtime = function () {
          var scalarsArray = new Float32Array(mesh.points.length);
          // fill array...
          mesh.scalars.array = scalarsArray ;
          mesh.scalars.lowerThreshold = min;
          mesh.scalars.upperThreshold = max;
      }
      

      标量数组存储 3 倍的值以匹配点(请参阅parserCRV.js#L213)。

      现在似乎在渲染网格时不会重新计算标量 min/max,所以我在 X\visualization\renderer3D.js 的 L1152 上添加了以下代码:

      var scalarsMin = Infinity;
      var scalarsMax = -Infinity;
      var value = 0;
      for ( var i = 0; i < scalarsArray.length; ++i ) {
          value = scalarsArray[i];
          if ( !isNaN(value) ) {
              scalarsMin = Math.min(scalarsMin, value);
              scalarsMax = Math.max(scalarsMax, value);
          }
      }
      scalars._min = scalarsMin;
      scalars._max = scalarsMax;
      

      我不确定,有人可以确认吗?

      【讨论】:

        猜你喜欢
        • 2016-12-21
        • 2013-07-02
        • 1970-01-01
        • 2020-05-30
        • 1970-01-01
        • 2022-08-20
        • 1970-01-01
        • 2022-01-11
        • 2023-04-03
        相关资源
        最近更新 更多