我试图使用我通过AR.js获取的jsartoolkit的标记数据在AR上下文中计算three.js对象旋转,以便即使在标记跟踪丢失的情况下也能控制对象。
似乎将标记的相同旋转参数应用于对象可以很好地工作,但是一旦更改了它们,例如,当我向旋转的“ x”参数添加+90度时,计算就会出错。 我将在下面编写一些代码以使问题清楚。
//marker.rotation is like this:
{
order: "XYZ",
x: 0,
y: 0,
z: 0
}
function calcRotation() {
// this one works
object.rotation.x = marker.rotation.x;
// this one goes wrong...
object.rotation.x = marker.rotation.x + Math.PI / 2;
object.rotation.y = marker.rotation.y;
object.rotation.z = marker.rotation.z;
}
function render() {
calcRotation();
requestAnimationFrame(render)
}
在错误的代码中,当我在y轴上将标记旋转90度时,对象在z轴上几乎旋转了90度。
我想我对euler horn或jsartoolkit旋转计算的技巧有误解,有什么想法..