Потеря вращения в Java3D при попытке анимировать - PullRequest
4 голосов
/ 01 мая 2011

Я создал Cylinder и повернул его так, чтобы он лежал на боку. Это отлично работает.

Однако сейчас я пытаюсь добавить анимацию. Я закодировал анимацию с помощью PositionInterpolar, и она отлично работает и перемещается по правой оси.

Проблема, с которой я столкнулся, заключается в том, что она, кажется, перезаписывает мои Transform3D Я раньше вращал цилиндр, поэтому мой цилиндр не стоит в вертикальном положении и движется вбок.

Есть идеи? Нужно ли вращать объект по-другому?

1 Ответ

2 голосов
/ 20 мая 2011

Возможно, это может быть простой случай, когда, насколько я помню, Java3D любит, чтобы вы использовали разные объекты Transform3D для каждого поворота и т. Д .... Например:

public class Static3DWorld extends JFrame {
    private Transform3D rotate1 = new Transform3D();
    private Transform3D rotate2 = new Transform3D();
    ....
    private Transform3D rotateCube() {
      rotate1.rotX(Math.PI / 4.0d);
      rotate2.rotY(Math.PI / 4.0d);
      rotate1.mul(rotate2);
      return rotate1;
    }
    ....
}

Это как ты делаешь свои вращения и т.д ...? Вы можете увидеть учебник здесь: http://www.java -tips.org / другие-API-советы / java3d / введение к JAVA3D-Апи-5.html

...