我需要围绕 3 个固定轴旋转的轴和角度。我想要的是:
输入:
- 角度 alpha(围绕固定 x 轴旋转)
- 角度 beta(绕固定 y 轴旋转)
- 角度 gamma(绕固定 z 轴旋转)
输出:
- 带角度的旋转轴
问题是我总是围绕已经旋转的轴旋转。到目前为止我的代码:
var q1 = x3dom.fields.Quaternion.axisAngle(new x3dom.fields.SFVec3f(0, 0, 1), alpha)
var q2 = x3dom.fields.Quaternion.axisAngle(new x3dom.fields.SFVec3f(1, 0, 0), beta)
var q3 = x3dom.fields.Quaternion.axisAngle(new x3dom.fields.SFVec3f(0, 1, 0), gamma)
var qr = q1.multiply(q2);
qr = qr.multiply(q3);
var r = qr.toAxisAngle();
this.curNode.attr('rotation', r[0].x + ' ' + r[0].y + ' ' + r[0].z + ' ' + r[1]);
视频:只有围绕环旋转一圈(红色一圈)是正确的。另外两个围绕旋转的对象轴。它们应该围绕固定轴