1
public void changeAx(double value) {
    translateAx.set(new Vector3f(0f, -0.325f, 0f));
    trans.setTransform(translateAx);
    rotation1.rotY(value);
    rotation.mul(rotation1);
    rot.setTransform(rotation);
    translateAx.set(new Vector3f(-0.2f, -0.325f, 0f);
    trans.setTransform(translateAx);
}

这是行不通的方法。我想在 X 轴上旋转对象。我将对象 X 轴位置平移回原点。然后我执行旋转,然后将对象平移回它应该在的位置。然而,对象会旋转,就好像没有进行第一次平移一样。这意味着它不会像坐在原点上一样旋转,而是好像它距原点 -0.2f,因此整个对象以 -0.2f 半径移动,但我希望它保持相同的平移当它旋转时。我想知道我在弄乱旋转的代码中做错了什么。

作为记录,如果我取出第二个(重新平移)对象将移动到 X 原点并正确旋转,但我想将它移回它应该在之后的位置,这会弄乱旋转。

4

1 回答 1

0

尝试使用此更改的第一行将对象的 X 轴位置转换为原点:

    translateAx.set(new Vector3f(0.2f, -0.325f, 0f));
八月

于 2013-04-15T06:48:41.410 回答