0

我正在尝试创建一个使用 vtk.js api 旋转 3D 体积的滑块

我已经实现了滑块来沿 x、y、z 轴移动对象,如下所示:

  changePosition({ activeLayer, value, coord }) {
        const currentPosition = api.volumes[activeLayer].getPosition()

        switch (coord) {
          case coord = 'X':
            api.volumes[layer].setPosition(
              value,
              currentPosition[1],
              currentPosition[2])
            break;
          case coord = 'Y':
            api.volumes[layer].setPosition(
              currentPosition[0],
              value,
              currentPosition[2])
            break;
          case coord = 'Z':
            api.volumes[layer].setPosition(
              currentPosition[0],
              currentPosition[1],
              value)
            break;
          default:
            break;
        }
        
        const renderWindow = api.genericRenderWindow.getRenderWindow();
        renderWindow.render()
    },

VTK.js 还提供了另外 2 种类似于getPositionsetPosition调用getOrientation的方法setOrientation

所以有人会认为这会起作用:

    changeOrientation({ activeLayer, value, coord }) {
        const currentOrientation = api.volumes[activeLayer].getOrientation()

        switch (coord) {
          case coord = 'X':
            api.volumes[layer].setOrientation(
              value,
              currentOrientation[1],
              currentOrientation[2])
            break;
          case coord = 'Y':
            api.volumes[layer].setOrientation(
              currentOrientation[0],
              value,
              currentOrientation[2])
            break;
          case coord = 'Z':
            api.volumes[layer].setOrientation(
              currentOrientation[0],
              currentOrientation[1],
              value)
            break;
          default:
            break;
        }

        const renderWindow = api.genericRenderWindow.getRenderWindow();
        renderWindow.render()
      })
    },

然而getOrientation返回[undefined](注意括号),并且 setOrientation 返回: Uncaught (in promise) TypeError: Cannot read properties of undefined (reading 'forEach')

我已经坚持了几天了,感谢您的帮助,非常感谢

4

0 回答 0