0

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

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

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

保罗

4

2 回答 2

0

Try with VtkProbeFiler. With this filter you can associate scalars values to points.

于 2013-12-13T12:26:34.393 回答
0

我设法添加了一些在 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;

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

于 2014-05-15T09:15:35.603 回答