Javascript 执行旋转后未更新三个JS-边界框

Javascript 执行旋转后未更新三个JS-边界框,javascript,rotation,three.js,bounding-box,Javascript,Rotation,Three.js,Bounding Box,在对几何体应用旋转后,我需要找出它的边界框 要旋转的代码-取自三个JS的示例编辑器 object.rotation.x = xRadians; object.rotation.y = yRdians; object.rotation.z = zRadians 这会很好地旋转对象 现在我需要得到更新的边界框 获取边界框的代码 var minX = parseFloat(object.boundingBox.min.x); var minY = parseFloat(object.bounding

在对几何体应用旋转后,我需要找出它的边界框

要旋转的代码-取自三个JS的示例编辑器

object.rotation.x = xRadians;
object.rotation.y = yRdians;
object.rotation.z = zRadians
这会很好地旋转对象

现在我需要得到更新的边界框

获取边界框的代码

var minX = parseFloat(object.boundingBox.min.x);
var minY = parseFloat(object.boundingBox.min.y);
var minZ = parseFloat(object.boundingBox.min.z);
无论旋转是什么,我都会在minX-Z中得到相同的值。获取更新的边界框的正确方法是什么

我用的是r-66

我还尝试使用:

var radians = x * Math.PI / 180;
var axisX = new THREE.Vector3(1, 0, 0);
var matrix = new THREE.Matrix4().makeRotationAxis(axisX, radians);
geometry.applyMatrix(matrix);
此方法执行相对旋转并正确更新边界框,但我不希望进行相对旋转。第一种方法是我正在寻找的,但它不会更新对象的边界框

有什么想法吗? 谢谢

Box3.setFromObject(object)
计算对象(包括其子对象)的世界轴对齐边界框,同时考虑对象和子对象的世界变换

var box = new THREE.Box3().setFromObject( object );
3.js r.66

var box = new THREE.Box3().setFromObject( object );
将返回世界坐标,因此您需要从中减去它们:

var bbox = new THREE.Box3().setFromObject(object);
bbox.min.sub(object.position);
bbox.max.sub(object.position);

这将为您提供相对于对象的正确边界框。

我不确定是否返回与对象“相同”的边界框。使用时边界框的作用:var matrix=new THREE.Matrix4().makeRotationAxis(axisX,弧度);它似乎返回了完全不同的值。我不是在找人来帮我调试代码,但我附上了一张图片,显示var box=new THREE.Box3().setFromObject(object);似乎没有给出正确的值:还有为什么plain object.boundingBox不起作用?谢谢你的意思是
几何体.boundingBox
<代码>几何体。边界框不考虑变换。查看源代码以了解它在做什么。您能告诉我应该查看代码的哪一部分以查看转换在哪里执行吗?好的,下面的代码不返回“右”边界:
var box=new THREE.Box3().setFromObject(mesh)但无论如何我都会记下答案。