如何将x,y,z旋转转换为轴角度以计算四元数

时间:2015-01-08 06:39:01

标签: java math quaternions

//见下面的new(rollMode == 2)(使用inverse())

//你们看起来熟悉Quaternions和3D输入。我阅读并阅读,无法将人们所说的内容翻译成代码。我正在尝试制作一个带有行星和宇宙飞船的虚拟太阳系,以获得乐趣。 (我35年前开始使用Applet II plus但是,没有人创建过具有多个视图的3D库,我没有自己编写所有这些的数学技能)。     将事情配对,我需要知道如何获取输入数据以使Axis / Angle和/或Quaternions能够转动并驱动我的船。 编辑:我找到了公式(并将它们放在这里为将来的所有人),但是,我没有得到良好的轮换 - 只是改变了标题(看着东西时没有很酷的旋转)。 编辑:我简化了一些事情。我的卷仍然在错误的轴上出现。

//initial setup
Q1 = new Quat4d();//initial rotation
Q1.inverse();
Q1.conjugate();
//setup input
//set up Q2 (quaternion) with new rotation increment (delta)
//d is (x meters/sec) / frames per second
A2 = new AxisAngle3d(Math.toRadians(d.x), Math.toRadians(d.y), Math.toRadians(d.z));
Q2 = new Quat4d();
Q2.set(A2);//set quaternion with axis/angle
Q2.inverse();//local frame of reference
//Q2.conjugate();//local frame of reference
Q1.mul(Q2);//update with new rotation increment

0 个答案:

没有答案