三.js:边界框奇怪的行为

Posted

技术标签:

【中文标题】三.js:边界框奇怪的行为【英文标题】:three.js: bounding box strange behaviour 【发布时间】:2018-02-10 10:24:33 【问题描述】:

我正在使用three.js,但我注意到某些东西不像我预期的那样工作。在我的应用程序中,我定义了一个立方体及其边界框:

var scene = new THREE.Scene();
var geometry = new THREE.BoxGeometry( 1, 1, 1 );
var material = new THREE.MeshPhongMaterial(color: 0xbaf5e8, flatShading: true);
var cube = new THREE.Mesh( geometry, material );
cube.receiveShadow = true;
scene.add(cube);
var helper_bbox = new THREE.BoxHelper(cube);
helper_bbox.update();
scene.add(helper_bbox);

当我尝试访问计算的边界框 (helper_bbox.geometry.boundingBox) 时,我注意到它的值是 null,尽管它在屏幕上完美呈现。尽管如此,边界球体 (helper_bbox.geometry.boundingSphere) 是可以访问的。

我不知道为什么会这样。有人对此有任何想法吗?有没有我应该明确调用的方法来检索边界框点的坐标?谢谢。

【问题讨论】:

【参考方案1】:

几何边界框不会自动计算,除非其他内部方法需要它们。您可以强制计算框 - 并检查它 - 如下所示:

object.geometry.computeBoundingBox();

console.log( object.geometry.boundingBox );

three.js r.87

【讨论】:

以上是关于三.js:边界框奇怪的行为的主要内容,如果未能解决你的问题,请参考以下文章

弹出框控件背景颜色奇怪的行为

组合框奇怪的行为(JavaFX 8)

如何纠正 Pandas 样式数据框中的奇怪行为

这一系列动画的Jquery奇怪行为

UISwitch 的奇怪行为

node.js 中的奇怪行为