Не удается заставить правильно работать вращение Java3D

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 и повернется правильно, но я хочу переместить его обратно туда, где он должен быть впоследствии, и это портит вращение.


person DanMc    schedule 14.04.2013    source источник
comment
У кого-нибудь есть идеи?   -  person DanMc    schedule 14.04.2013


Ответы (1)


Попробуйте эту измененную первую строку для перевода положения оси X объекта в начало координат:

    translateAx.set(new Vector3f(0.2f, -0.325f, 0f));
августа.

person InteractiveMesh    schedule 15.04.2013