THREE.Group 的位置始终为 (0, 0, 0) & 寻找 THREE.Group 位置时计算错误

问题描述 投票:0回答:1

我正在开发 Three.js 应用程序,其中使用 THREE.Group 来管理场景中选定的多米诺骨牌。但是,我遇到一个问题,尽管添加和删除了对象,但 THREE.Group 的位置始终报告为 (0, 0, 0)。此外,我还实现了一种方法来计算组内选定多米诺骨牌的平均位置,但它似乎错误计算了位置。

重现步骤:

在场景中创建多米诺骨牌对象。 使用选择工具选择一个或多个多米诺骨牌。 检查报告的THREE.Group 位置。 将报告的位置与所选多米诺骨牌的实际位置进行比较。

预期行为:

三组的位置应准确反映其中所选多米诺骨牌的平均位置。

实际行为:

THREE.Group 的位置始终报告为 (0, 0, 0),计算出的所选多米诺骨牌的平均位置似乎不正确。

Github页面:https://ka-hirithik.github.io/DominoForgeStackOverFlow/ Github代码:https://github.com/KA-Hirithik/DominoForgeStackOverFlow

javascript three.js
1个回答
0
投票

在 ThreeJS 中对元素进行分组时,元素的边界框不涉及计算。

为了计算分组元素的位置/中心,可以将其传递给

Box3
进行边界框计算,并使用
Box3.getCenter
计算相对于世界的位置/中心点。

const center = new THREE.Vector3();
new THREE.Box3().setFromObject(selectedDomino).getCenter(center);
console.log(center);
© www.soinside.com 2019 - 2024. All rights reserved.