沿3轴旋转对象并获取用于旋转对象的原始角度

时间:2019-03-16 09:56:05

标签: three.js

我正在使用rotateX,rotateY,rotateZ在3个轴上旋转Object3D。最初,我的角度定义为

var rotations = {
    x: 0,
    y: 180,
    z: 0
};

初始轮换工作正常。在稍后的阶段,我想读取object3D的旋转值并将其转换回我的原始对象。但是,它产生不同的结果。有没有一种方法可以将对象反向旋转以将object3D的旋转转换回原始角度?

var deg = Math.PI / 180;
var rotations = {
  x: 0,
  y: 180,
  z: 0
};

var o = new THREE.Object3D();
o.rotateZ(rotations.z * deg);
o.rotateX(rotations.x * deg);
o.rotateY(rotations.y * deg);

var orig = "x: " + rotations.x + ", y:" + rotations.y + ", z:" + rotations.z;
var current = "x: " + o.rotation.x / deg + ", y:" + o.rotation.y / deg + ", z:" + o.rotation.z / deg;

document.body.innerHTML = orig + "<br/>" + current;
<script src="https://cdnjs.cloudflare.com/ajax/libs/three.js/102/three.min.js"></script>

0 个答案:

没有答案