문제

Java3d에서 2 개의 모델을 가져 와서 스케일링 한 다음 A를 사용하여 그 중 하나를 회전시킵니다. 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);

이것은 내 현재 회전을 수행하기위한 내 코드입니다.

도움이 되었습니까?

해결책

DR은 객체를 원점으로 번역하고 회전을 수행 한 다음 객체를 해당 위치로 다시 번역하면서 대답했습니다. 효과가 있었다.

내 실제 솔루션은 Java3d에로드하고있는 .obj 파일의 원점에서 모델을 중앙에 중앙에 중앙으로 중앙으로 중앙으로 중앙으로 중앙으로 중앙을 중앙으로 중앙에 놓고 회전을 수행 한 다음 객체를 올바른 위치로 변환하는 것이 었습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top