【问题标题】:Three.js: making bounding box三.js:制作边界框
【发布时间】:2018-10-04 13:05:39
【问题描述】:

在我的程序中,我试图围绕点云制作边界框。为此,我计算了相反的顶点。

Here,提供 BoxGeomtery 的文档。但我无法理解构造函数。构造函数将宽度、高度、深度作为输入。但是盒子的位置呢。这个框将在场景中的哪个位置创建?我希望边界框由我拥有的两个顶点定义。

编辑:

var geometry = new THREE.Box3(mn,mx);
var material = new THREE.MeshBasicMaterial({color: 0xfffff, wireframe: true});
var bBox = new THREE.Mesh(geometry, material);
scene.add(bBox);

mn,mx 是盒子的顶点。 上面的代码给出了错误:

未捕获的类型错误:object.geometry.addEventListener 不是函数

【问题讨论】:

  • THREE.Box3 不是几何体,不能这样使用。

标签: three.js bounding-box


【解决方案1】:

BoxGeomtery 是一个几何生成器。您正在寻找的是Box3three.js 的 AABB 实现。您可以使用Box3.setFromObject 为 3D 对象生成边界框。

const aabb = new THREE.Box3().setFromObject( points );

然后您可以使用Box3.getCenter 检索框的中心。

【讨论】:

  • 这是THREE.Points的一个实例。
  • 您不能将THREE.Box3 的实例用作几何对象。 THREE.Box3 是您可以使用的边界框或边界体积,例如用于快速交叉测试。如果您只想可视化对象的边界框,请使用 THREE.BoxHelper,如本例所示:threejs.org/examples/#webgl_helpers
猜你喜欢
  • 2022-10-18
  • 2021-05-27
  • 2018-10-07
  • 2018-02-10
  • 2013-02-04
  • 2017-02-19
  • 2014-05-07
  • 2012-11-09
  • 2018-01-13
相关资源
最近更新 更多