我是3D计算机图形学的新手,看到了一件奇怪的事。
我使用的是XTK-Toolkit,对DICOM来说很棒。我在场景中添加了一个立方体,并将其远离中心(http://jsfiddle.net/64L47wtd/2/)。
当立方体旋转时,它看起来像是在移动
这是XTK中的错误,还是3D渲染的主要问题?
window.onload = function() {
// create and initialize a 3D renderer
var r = new X.renderer3D();
r.init();
// create a cube
cube = new X.cube();
// skin it..
cube.texture.file = 'http://x.babymri.org/?xtk.png';
cube.transform.translateX(250);
cube.transform.translateY(200);
cube.transform.translateX(270);
r.add(cube); // add the cube to the renderer
r.render(); // ..and render it
// add some animation
r.onRender = function() {
// rotation by 1 degree in X and Y directions
cube.transform.rotateX(1);
cube.transform.rotateY(1);
};
};
答案 0 :(得分:0)
您错过了将立方体视为由多个顶点,边和/或面组成的复合对象。作为复合对象,它使用由轴X,Y,Z组成的局部坐标系。使用与该立方体局部坐标系相关的顶点的坐标在内部描述实际的立方体。
通过"翻译"你声明在应用于局部坐标系之前调整顶点的相对坐标。然后旋转仍然在该局部坐标系的轴上工作。
因此,这不是X工具包的错误。
您可能需要将多维数据集放入另一个(可能是完全透明的)容器对象中以进行平移/移动,但继续旋转多维数据集本身。
我试图相应地扩展你的小提琴,但根本没有成功。考虑到X Toolkit的明显意图,这可能是该工具包的一个预期限制,因为它显然不依赖于它的API支持由多级对象层次结构组成的复杂场景的编程构造。