如何加载json3d对象并将其放在threejs中的原点

How to load json 3d object and put it at origin in threejs

本文关键字:threejs 原点 何加载 加载 对象 json3d      更新时间:2023-09-26

我们如何加载json对象并将其放置在原点。object.position.x和mesh.position.x都没有帮助我将对象定位到原点。我想得到对象的最大值和最小值x,y和z,这样我就可以创建一个对象边界框。当我在屏幕上以原点为中心绘制框时,它会包含整个对象。如果对象的位置不在原点,我现在这样做是行不通的。

如果未设置mesh.geometry.boundingBox属性,请使用mesh.geometry.computeBoundingBox()方法设置该属性。然后(明确地写这篇文章,你可以用矢量运算)

var geometryCenter = new THREE.Vector3();
geometryCenter.x = mesh.geometry.boundingBox.min.x + ( mesh.geometry.boundingBox.max.x - mesh.geometry.boundingBox.min.x ) / 2;
geometryCenter.y = mesh.geometry.boundingBox.min.y + ( mesh.geometry.boundingBox.max.y - mesh.geometry.boundingBox.min.y ) / 2;
geometryCenter.z = mesh.geometry.boundingBox.min.z + ( mesh.geometry.boundingBox.max.z - mesh.geometry.boundingBox.min.z ) / 2;
mesh.position.set( -geometryCenter.x, -geometryCenter.y, -geometryCenter.z );

应将网格放置在原点。

调用mesh.geometry.center(),它将偏移几何体本身,使其以原点为中心。