我创建了一个宽度=2083、高度=1987、深度=0 的立方体。然后我绘制了另一个高度 = 40、宽度 = 80、深度 = 0 的立方体,并将第二个立方体作为第一个立方体的子级。我已经设置了子立方体的位置,例如它会进入父立方体。子立方体的位置是(x= -1210, y= -880)
camera = new THREE.PerspectiveCamera( 30, window.innerWidth / window.innerHeight, 1, 10000 );
camera.position.x = 0;
camera.position.y = 0;
camera.position.z = 8000;
var parentCube = new THREE.Mesh(new THREE.BoxGeometry(2083,1987,0), new THREE.MeshBasicMaterial({color:0xaa00ff}));
childCube = new THREE.Mesh(new THREE.BoxGeometry(80, 40, 0), new THREE.MeshBasicMaterial({color: 0x00ff00}) );
childCube.position.x = -1210;
childCube.position.y = -880;
childCube.position.z = 0;
parentCube.add(childCube);
问题是子立方体被绘制在父立方体之外。
此外,如果我删除父子关系,则 childCube 会按预期在 parentCube 内绘制。
最佳答案
当您定义父子关系时,子项的位置相对于父项。
所以要将 child 放在 parent 的中心,请使用位置 (0,0,0)
您的示例位置确实超出了父级的范围。
关于javascript - Three.js 中的父子关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33260451/