X.matrix.rotate似乎不起作用

时间:2013-01-29 17:27:57

标签: xtk

所以,我一直遇到xtk的问题

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

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

问题是,我无法让X.matrix.rotate全部工作。任何人都可以给我至少一些示例函数调用应该是什么样子,以及如何定义$ IAXIS因为我怀疑可能是问题。

非常感谢!

2 个答案:

答案 0 :(得分: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);

答案 1 :(得分:0)

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