所以,我一直有xtk的问题
var rotate = m.rotate($ANGLE, $IAXIS);
现在已经有相当长的一段时间了。基本上,我想做的是围绕某个轴在空间中旋转单个对象,而不移动其他对象或相机。我的想法是通过在包含对象的 transform.matrix 的 X.matrix 上应用旋转函数来做到这一点。
问题是,我根本无法让 X.matrix.rotate 工作。谁能给我至少一些示例函数调用的外观,以及如何定义 $IAXIS 因为我怀疑这可能是问题所在。
非常感谢!
所以,我一直有xtk的问题
var rotate = m.rotate($ANGLE, $IAXIS);
现在已经有相当长的一段时间了。基本上,我想做的是围绕某个轴在空间中旋转单个对象,而不移动其他对象或相机。我的想法是通过在包含对象的 transform.matrix 的 X.matrix 上应用旋转函数来做到这一点。
问题是,我根本无法让 X.matrix.rotate 工作。谁能给我至少一些示例函数调用的外观,以及如何定义 $IAXIS 因为我怀疑这可能是问题所在。
非常感谢!
啊,目前的轴应该是 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);
只是对此的更新:由于 Google 友好地对其闭包库进行了一些重大更改,我发现四元数表示法最适合解决这个问题。感谢大家的评论!