java 线绕点旋转,围绕Java3D中的特定点旋转

I'm importing 2 models in Java3D, scaling them down and then rotating one of them using a RotationInterpolator

However, this rotates the object around the origin. I want to rotate the object around ITS centre, not the scene's. Put simply, I want it to spin in place.

How do I rotate around a specific point?

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);

This is my code for doing my current rotation.

解决方案

DR answered with translating the object to the origin, performing the rotation, then translating the object back to its position. Which worked.

My actual solution was to simply centre the model at the origin in the .obj file I was loading into Java3D, perform my rotation, and then translate the objects to their proper position.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值