我的工作应用程序使用的是Libgdx引擎和3d空间中的标记。现在,我需要围绕X,Y,Z轴旋转贴花,但围绕自定义的枢轴点,它站在3d空间的某个地方。
我发现标记有transformationOffset字段,它可能与某些计算一起工作,但只适用于Vector2。这意味着我只能在X和Y轴上移动枢轴点。当在Y轴上旋转贴片时,无论枢轴在哪里,结果都是一样的。
decal.transformationOffset = new Vector2(0, -5);
decal.rotateX(newValues[0]);
decal.rotateY(newValues[1]);
decal.rotateZ(newValues[2]);我也需要在Z轴上移动枢轴。
这个问题有什么解决办法吗?
Tnx!
编辑:
我已经成功地在三维空间的枢轴点上旋转了贴花,但只有当枢轴和贴花的Z位置相同的时候。如果他们不是,我就得不到我所期望的。
这是用于具有相同Z值的pivot的代码:
decal.transformationOffset = new Vector2(pivotPosition.x - decal.getPosition().x, pivotPosition.y - decal.getPosition().y);
Tween.to(decal, DecalTween.XYZ_ROTATION, 5f).target(0, 360, 0).repeatYoyo(Tween.INFINITY, 0f).start(tweenManager);在这段时间里,我这样做:
target.setRotationX(0);
target.setRotationY(0);
target.setRotationZ(0);
target.rotateX(newValues[0]);
target.rotateY(newValues[1]);
target.rotateZ(newValues[2]);如何将其扩展到pivot的使用和Z值。我试图添加和翻译动画旁边的旋转,以实现这一点,但结果是奇怪的。
Tween.to(decal, DecalTween.MOVE_XYZ, 2.5f).target(decal.getPosition().x, decal.getPosition().y, pivotPosition.z - decal.getPosition().z).repeatYoyo(Tween.INFINITY, 0f).start(tweenManager);
decal.transformationOffset = new Vector2(pivotPosition.x - decal.getPosition().x, pivotPosition.y - decal.getPosition().y);
Tween.to(decal, DecalTween.XYZ_ROTATION, 5f).target(0, 360, 0).repeatYoyo(Tween.INFINITY, 0f).start(tweenManager);知道如何将平移和旋转的动画结合起来,在枢轴点上的圆路径上得到贴花旋转吗?
发布于 2014-09-22 21:39:36
我想我会回答我自己的问题。
我扩展了Decal类,将transformationOffset更改为Vector3。
然后,在transformVertices中,我增加了tz值,就像tx和ty已经存在一样。并在顶点位置的计算中加入tz。
就这么简单。
如果有人知道为什么本机libgdx支持遗漏了这一点,请告诉我。
干杯。
https://stackoverflow.com/questions/25804490
复制相似问题