我们正在尝试将标量值与从文件读取的VTK网格中的单元格/点相关联。我们知道可以做一些事情,比如使用FreeSurfer不同的曲率文件 - CRV(如例12所示 - http://lessons.goxtk.com/12/)
我们的问题是如何设置vtk文件中的标量值(块PointData和CellData)?如果这不可能,有没有办法直接将标量数组设置为X.mesh(任何例子)?
感谢并抱歉英语不好: - )
圣保罗
答案 0 :(得分:0)
尝试使用VtkProbeFiler。使用此过滤器,您可以将标量值与点相关联。
答案 1 :(得分:0)
我设法在XTK第12课的j15的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)。
现在看来渲染网格时不会重新计算标量最小值/最大值,所以我在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;
我不确定,有人可以确认吗?