javascript - Three.js 中的父子关系

标签 javascript three.js parent-child

我创建了一个宽度=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/

相关文章:

javascript - 无法使用脚本标签添加js文件

javascript - 将图像添加到立方体的一侧

javascript - Three.js 的粒子系统作为 npm 包

javascript - Three.js raycaster 在我移动鼠标之前选择所有内容

php - 如何防止在 PHP 的子实例中使用公共(public)父方法?

javascript - 改变DIV内图片的大小

javascript - NodeJs/Express - 访问注册到应用程序的 View 引擎

javascript - 使用 live() 进行验证并通过 ajax() 提交

jquery - 如何阻止 child 传播由实时/委托(delegate)监听器触发的事件?

python - 父进程退出后让子进程继续运行