Three.js 对象返回错误的位置/旋转/缩放值

尼菲

我的场景中有一个three.js 对象,您可以使用THREE.TransformControls 旋转/缩放/移动它。在场景中定位对象后,应保存旋转/位置/缩放的值。我得到这样的值:

// Position
$scope.scene.updateMatrixWorld(true);
var position = new THREE.Vector3();
position.getPositionFromMatrix( $scope.object.matrixWorld );

// Rotation
var rotation = new THREE.Euler();
$scope.object.getWorldRotation(rotation);

// Size
var size = new THREE.Box3().setFromObject($scope.object);
var x = (size.max.x - size.min.x);
var y = (size.max.y - size.min.y);
var z = (size.max.z - size.min.z);

因此,当我保存值并使用新值重新加载场景时,对象看起来与它应该的完全不同。所以,我认为,这些函数提供了错误的旋转/缩放/位置值。例如,size.z 变量应始终为 0,但在保存(并在控制台中打印该值)时,它会获得另一个值。

有谁知道为什么?

谢谢你的帮助。

吉姆01

Three.js 提供了矩阵分解功能:https ://threejs.org/docs/#api/math/Matrix4.decompose

以下是如何使用它的示例:

var translation = new THREE.Vector3();
var rotationQ = new THREE.Quaternion();
var scale = new THREE.Vector3();

myObject.matrixWorld.decompose(translation, rotationQ, scale);

然后,如果要将旋转保存为欧拉:

var rotationE = new THREE.Euler().setFromQuaternion(rotationQ.normalize());

三.js r88

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Three.js旋转

来自分类Dev

Three.js-我可以对几何图形“应用”位置,旋转和缩放吗?

来自分类Dev

three.js旋转面向对象

来自分类Dev

在Three.js的中心旋转mergeometry对象

来自分类Dev

在three.js中旋转对象

来自分类Dev

Three.js相机旋转错误

来自分类Dev

THREE.ObjectLoader的Three.js错误

来自分类Dev

Three.js捏缩放

来自分类Dev

Three.js-对象跟随鼠标位置

来自分类Dev

Three.js:如何返回对象的大小?

来自分类Dev

Three.js,缩放对象时发生意外的位置偏移

来自分类Dev

当对象旋转时Three.js旋转相机

来自分类Dev

Three.js将对象添加到组中,但保持原样的全局位置/旋转/比例

来自分类Dev

使用three.js将平移,旋转和缩放应用于几何后,如何获得顶点位置?

来自分类Dev

Three.js对象居中

来自分类Dev

Three.JS对象裁剪?

来自分类Dev

Three.js对象居中

来自分类Dev

围绕对象轴THREE.js旋转对象

来自分类Dev

使用Three.js,WebGL显示对象的顶点并旋转对象

来自分类Dev

使用Three.js,WebGL显示对象的顶点并旋转对象

来自分类Dev

Three.js将相机旋转到特定位置

来自分类Dev

three.js通过轴方向旋转对象

来自分类Dev

three.js通过鼠标向下旋转对象并移动

来自分类Dev

Three.js:添加和删除旋转对象的子代

来自分类Dev

Three.JS通过移动设备围绕对象旋转相机

来自分类Dev

Three.js通过圆路径旋转对象

来自分类Dev

Three.js:添加和删除旋转对象的子代

来自分类Dev

Three.js-围绕特定轴旋转对象

来自分类Dev

如何在Three.js中使用鼠标旋转对象?