矩阵变换-绕对象原点旋转



使用以下代码,我沿着x轴移动一个对象,并在每帧中相对于其位置旋转它。

quad.getModel().setIdentity();
quad.getModel().scale(new Vector3f(10, 10, 10));
quad.getModel().translate(new Vector3f(x, 0, 0));
quad.getModel().rotate(x * 2, new Vector3f(0, 1f, 0f));

现在我想删除model.setIdentity()。我现在怎么能做到同样的事情?

好吧,我自己找到了解决方案。我只需要每帧都向后旋转,然后移动它,而不是向后旋转。原因是,旋转会改变对象的相对轴。所以翻译也沿着这个新的轴移动。沿着原点或"旧"轴移动,只需要在那之前重置旋转。

最新更新