Three.js 中的父子关系
Parent child relationship in Three.js
我创建了一个立方体,宽度=2083,高度=1987,深度=0。然后我绘制了另一个高度 = 40、宽度 = 80、深度 = 0 的立方体,并将第二个立方体作为第一个 cube.I 的子级,设置了子立方体的位置,例如它将进入父立方体。子立方体的位置是(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 内绘制。
当您定义 parent-child 关系时,child 的位置 相对于 parent。
所以要在 parent 的中心放置一个 child,使用位置 (0,0,0)
您的示例位置确实在 parent 的范围之外。
我创建了一个立方体,宽度=2083,高度=1987,深度=0。然后我绘制了另一个高度 = 40、宽度 = 80、深度 = 0 的立方体,并将第二个立方体作为第一个 cube.I 的子级,设置了子立方体的位置,例如它将进入父立方体。子立方体的位置是(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 内绘制。
当您定义 parent-child 关系时,child 的位置 相对于 parent。
所以要在 parent 的中心放置一个 child,使用位置 (0,0,0)
您的示例位置确实在 parent 的范围之外。