Поворот вокруг определенной точки в Java3D - PullRequest
1 голос
/ 07 декабря 2009

Я импортирую 2 модели в Java3D, масштабирую их, а затем поворачиваю одну из них, используя RotationInterpolator

Тем не менее, это вращает объект вокруг начала координат. Я хочу вращать объект вокруг его центра, а не сцены. Проще говоря, я хочу, чтобы он вращался на месте.

Как мне вращаться вокруг определенной точки?

    TransformGroup rotateTheBlades = new TransformGroup();
    rotateTheBlades.setCapability(
                  TransformGroup.ALLOW_TRANSFORM_WRITE);

    Alpha rotationAlpha = new Alpha(-1,5000);

    RotationInterpolator rotator =
        new RotationInterpolator(
          rotationAlpha,rotateTheBlades);

    Transform3D abc = new Transform3D();
    abc.rotZ(Math.PI/2);

    rotator.setTransformAxis(abc);

    rotator.setSchedulingBounds(new BoundingSphere());

    rotateTheBlades.addChild(rotator);
    rotateTheBlades.addChild(theBlades);

Это мой код для моей текущей ротации.

1 Ответ

1 голос
/ 07 декабря 2009

DR ответил переводом объекта в начало координат, выполнением поворота, а затем переводом объекта обратно на его место. Который работал.

Мое реальное решение состояло в том, чтобы просто центрировать модель в начале координат в файле .obj, который я загружал в Java3D, выполнить вращение, а затем перевести объекты в их правильное положение.

...