0

所以,我一直有xtk的问题

var rotate = m.rotate($ANGLE, $IAXIS);

现在已经有相当长的一段时间了。基本上,我想做的是围绕某个轴在空间中旋转单个对象,而不移动其他对象或相机。我的想法是通过在包含对象的 transform.matrix 的 X.matrix 上应用旋转函数来做到这一点。

问题是,我根本无法让 X.matrix.rotate 工作。谁能给我至少一些示例函数调用的外观,以及如何定义 $IAXIS 因为我怀疑这可能是问题所在。

非常感谢!

4

2 回答 2

0

啊,目前的轴应该是 goog.math.Vec3 就像在 camera3d.js 中一样

  var yAxisVector = new goog.math.Vec3(parseFloat(this._view.getValueAt(1, 0)),
      parseFloat(this._view.getValueAt(1, 1)), parseFloat(this._view
          .getValueAt(1, 2)));

  // we rotate around the Y Axis when the mouse moves along the screen in X
  // direction
  var rotateX = identity.rotate(angleX, yAxisVector);

由于 goog.math.Vec3 在编译期间被最小化,我们现在还允许将轴作为数组 [x,y,z] 传递。

但是要转换一个对象,它更容易使用

var o = new X.object();
o.transform.rotateX(10);
o.transform.rotateY(10);
o.transform.rotateZ(10);
于 2013-01-29T20:58:10.823 回答
0

只是对此的更新:由于 Google 友好地对其闭包库进行了一些重大更改,我发现四元数表示法最适合解决这个问题。感谢大家的评论!

于 2013-04-03T12:48:15.303 回答