1

我正在尝试使用 XTK 直接在客户端上渲染从网络服务器发送的 vtk 对象,而不将它们存储到磁盘上。根据XTK 文档,我只需将 vtk 文件作为字符串传递到 X.Mesh.filedata 中,但是当我尝试这样做时它不会显示任何内容。

我想做这样的事情:

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

// create a mesh from a .vtk file
var dataset = new X.mesh();
// dataset.file = 'someFile.vtk';
dataset.filedata = data;

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

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

当我从文件加载文件时,一切正常,使用 filedata 设置它不会。我的错误在哪里?

4

1 回答 1

0

我也想出了类似的场景,直接使用 filedata 而不是设置文件属性来加载二进制数据。我通过在文件属性中传递虚拟名称以及在文件数据中设置的实际二进制数据来做到这一点,并且一切正常。

var xhr = new XMLHttpRequest();
xhr.open('GET', '/test.nii', true);
xhr.responseType = 'arraybuffer';
xhr.send();
    xhr.onreadystatechange = function (e) {
        if (this.readyState === 4) {
            var r = new X.renderer2D();
            r.container = 'myImg';
            r.orientation = 'Z';
            r.init();
            volume = new X.volume();
            volume.file = "abc.nii";
            volume.filedata = this.response;
            r.add(volume);
            r.render();
        }
    };
于 2013-07-23T06:48:18.190 回答