0

私はこのライブラリに慣れてきていると思います。

1)レッスン10 のようにボリュームレンダリングを行いたい

ユーザーが「v」を押して関数を実行したかどうかを確認したい

これは私が試したことです:

window.onload = function() {

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

    var volume = new X.volume();
    volume.file = 'http://lessons.goXTK.com/data/avf.nrrd';
    var vr = false;

    function vRender() {
        if (vr) {
            volume.volumeRendering = true;
            volume.opacity = 0.15;
            r.render();
        }
    }


    r.interactor.onKey = function(event) {
        if (event.keyCode == 86) {
            vr = true;
            vRender();
        }
    }

    r.add(volume);
    r.camera.position = [120, 80, 160];
    r.render();

};

2)スライスレイヤーの1つを取得する、または3つの軸のうち2つを無効にするにはどうすればよいですか?私が試したのと同じように機能しますか?

var volume = new X.volume();
volume.file = 'http://lessons.goXTK.com/data/avf.nrrd';

volume.sliceX.visible = false;
volume.sliceZ.visible = false;

どんな助けもいただければ幸いです!

4

2 に答える 2

1

2)

はい、同様の方法で可能です。JSFiddleをチェックしてください

http://jsfiddle.net/haehn/qxMtk/

違いは、volume._sliceX利用できない(コンパイル中にエクスポートされない)ため、子を確認する必要があることです。それぞれX.volumeに、X、Y、Zスライスである3つの子0、1、2があります。

r.render()また、子にアクセスする前に、ボリュームを作成する必要があります(これは、によって開始された解析中に発生します)。そのため、処理の実行中onShowtimeまたは実行後に実行する必要があります。

于 2012-05-31T15:39:29.027 に答える
1

1)コードを試したところ、ほぼ完全に機能します。(残念ながら、onKeyイベントはJSFiddleで機能しないため、フィドルを投稿できません)。

volume.modified()を起動する行を追加し、X.event.ModifiedEventスライスとボリュームレンダリングの切り替えが正しく行われることを確認しました。

  function vRender() {

    if (vr) {

      volume.volumeRendering = true;
      volume.opacity = 0.15;
      **volume.modified();**
      r.render();
    }
  }


  r.interactor.onKey = function(event) {

    if (event.keyCode == 86) {
      vr = true;
      vRender();
    }
  };
于 2012-05-31T15:50:16.120 に答える