我正在尝试创建一个使用 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 种类似于getPosition
和setPosition
调用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')
我已经坚持了几天了,感谢您的帮助,非常感谢