【发布时间】:2015-11-10 06:20:01
【问题描述】:
我们如何加载 json 对象并将其放置在原点。 object.position.x 和 mesh.position.x 都没有帮助我反对原点。我想获取对象的最大和最小 x、y 和 z 值,以便创建对象边界框。当我在以原点为中心的屏幕上绘制该框时,它将在其中包含整个对象。如果对象的位置不在原点,我现在这样做的方式不起作用。
【问题讨论】:
标签: javascript json three.js
我们如何加载 json 对象并将其放置在原点。 object.position.x 和 mesh.position.x 都没有帮助我反对原点。我想获取对象的最大和最小 x、y 和 z 值,以便创建对象边界框。当我在以原点为中心的屏幕上绘制该框时,它将在其中包含整个对象。如果对象的位置不在原点,我现在这样做的方式不起作用。
【问题讨论】:
标签: javascript json three.js
如果未设置mesh.geometry.boundingBox 属性,请使用mesh.geometry.computeBoundingBox() 方法设置该属性。然后(显式写这个,你可以用Vector操作来做)
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(),它会将几何体本身偏移到以原点为中心。
【讨论】: