首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在ThreeJS中获得三维对象的尺寸?

如何在ThreeJS中获得三维对象的尺寸?
EN

Stack Overflow用户
提问于 2016-05-13 17:09:11
回答 2查看 2.9K关注 0票数 3

我正在使用WebRTC (网络摄像头访问)、JSARToolKit (标记检测)和threeJS (3D库)开发一个AR应用程序。

我希望将3D对象(使用三个玛雅导出器从Maya导出)放置在检测标记的中心。

这是使用JSONLoader加载3D对象的代码:

代码语言:javascript
复制
// load the model
var loader = new THREE.JSONLoader;
var object;
//var geometry = new THREE.BoxGeometry(1, 1, 1);
loader.load('js/cube.js', function(geometry, materials){
var material = new THREE.MeshFaceMaterial(materials);
object = new THREE.Mesh(geometry, material);

object.position.x -= ***3DobjectWidth/2***;
object.position.y -= ***3DobjectHeight/2***;
object.position.z -= ***3DobjectDepth/2***;

scene.add(object);
});

我需要获取对象的宽度、高度和深度来更改其位置(请参阅3 3DobjectWidth ecc)。

有什么建议吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-13 17:18:44

对象大小将放置在geometry.boundingBox。但它必须只产生一次。

尝尝这个。

代码语言:javascript
复制
geometry.computeBoundingBox();
var bb = geometry.boundingBox;
var object3DWidth  = bb.max.x - bb.min.x;
var object3DHeight = bb.max.y - bb.min.y;
var object3DDepth  = bb.max.z - bb.min.z;
票数 5
EN

Stack Overflow用户

发布于 2016-05-13 17:48:07

几何学有一个.center()方法。如果您需要根据相同的几何学对多个网格进行居中,这可能会更有效和更简单。它还为您调用computeBoundingBox。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37215703

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档