Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用matlab创建的.vtk文件进行xtk体绘制_Matlab_Vtk_Xtk - Fatal编程技术网

使用matlab创建的.vtk文件进行xtk体绘制

使用matlab创建的.vtk文件进行xtk体绘制,matlab,vtk,xtk,Matlab,Vtk,Xtk,我从XTK开始。我想加载一个.vtk文件,以便在XTK中进行体绘制 该.vtk文件是使用matlab函数创建的,该函数将3D数据数组(体素)保存为vtk格式: function savevtk(array, filename) % savevtk Save a 3-D scalar array in VTK format. % savevtk(array, filename) saves a 3-D array of any size to % filename in VTK format

我从XTK开始。我想加载一个.vtk文件,以便在XTK中进行体绘制

该.vtk文件是使用matlab函数创建的,该函数将3D数据数组(体素)保存为vtk格式:

function savevtk(array, filename)
%  savevtk Save a 3-D scalar array in VTK format.
%  savevtk(array, filename) saves a 3-D array of any size to
%  filename in VTK format.
    [nx, ny, nz] = size(array);
    fid = fopen(filename, 'wt');
    fprintf(fid, '# vtk DataFile Version 2.0\n');
    fprintf(fid, 'Comment goes here\n');
    fprintf(fid, 'ASCII\n');
    fprintf(fid, '\n');
    fprintf(fid, 'DATASET STRUCTURED_POINTS\n');
    fprintf(fid, 'DIMENSIONS    %d   %d   %d\n', nx, ny, nz);
    fprintf(fid, '\n');
    fprintf(fid, 'ORIGIN    0.000   0.000   0.000\n');
    fprintf(fid, 'SPACING    1.000   1.000   1.000\n');
    fprintf(fid, '\n');
    fprintf(fid, 'POINT_DATA   %d\n', nx*ny*nz);
    fprintf(fid, 'SCALARS scalars float\n');
    fprintf(fid, 'LOOKUP_TABLE default\n');
    fprintf(fid, '\n');
    for a=1:nx
        for b=1:ny
            for c=1:nz
                fprintf(fid, '%d ', array(a,b,c));
            end
            fprintf(fid, '\n');
        end
    end
    fclose(fid);
return
创建了
'output.vtk'
文件后,我尝试通过以下方式加载它:

window.onload = function() {

var r = new X.renderer3D();
r.init();

// create a mesh from a .vtk file
var skull = new X.mesh();
skull.file = 'output.vtk';

// add the object
r.add(skull);

// .. and render it
r.render();

};
但浏览器中不会显示任何内容

我的“output.vtk”是否不是用于体渲染的有效.vtk文件


如何将此类文件加载到XTK中?

XTK代码看起来不错,但vtk格式的值之间的间距通常不超过1。我想这就是问题所在。

vtk文件似乎是有效的,我已经用paraview对它进行了测试,它还可以。那么有什么不对呢?这可能是真的,但XTK(出于性能原因)并没有在值之间去掉多个空格。试一试,我确信它会成功的。也许如果您使用paraview重新保存文件,编写器已经为您删除了空间?我通过使用paraview重新保存文件删除了多个空间,但仍然不起作用。我认为它来自xtk代码。我只想渲染一个体积,“var skull=new X.mesh();”命令是否正确?您可以共享新文件吗?XTK是否需要在生成的.vtk文件中进行任何自定义?…我很困惑..:(那么最后您是如何解决您的问题的呢?…我很困惑。无法使用XTK加载.vtk文件。我的.vtk文件格式与您在此处提到的格式相同。请帮助我:)