gpt4 book ai didi

java - 我如何在 libgdx 中设置固定的 shaperenderer 旋转?

转载 作者:行者123 更新时间:2023-11-30 03:04:19 25 4
gpt4 key购买 nike

我有一个这样的三角形;

shapeRenderer.begin(ShapeType.Line);
shapeRenderer.setColor(1, 1, 0, 1);
shapeRenderer.polygon(new float[] { -10, 0, 10, 0, 0, 200 });
shapeRenderer.rotate(0, 0, 1, 1);
shapeRenderer.end();

我在每个渲染中旋转 1 度。但我想将旋转(例如 45)固定到一个角度。我怎样才能做到这一点?谢谢。

最佳答案

要获得固定旋转,您只需旋转一次 ShapeRenderer。我可以考虑两种可能的方法:

  1. 在构造函数或 create()/show() 中调用 shapeRenderer.rotate(0, 0, 1, 45);方法此调用将您的 ShapeRenderer 围绕 Z 轴(第三个参数)
  2. 旋转 45°(最后一个参数)
  3. 在渲染方法中调用 shapeRenderer.rotate(0, 0, 1, 45);,前提是您还没有旋转。所以你必须保持一个 boolean rotated 并且只有当它是 false 你调用 rotate() 并将它设置为 true.

要回答您评论中的问题:您不能直接设置旋转,只能旋转(相对于当前旋转)。所以我建议存储一个 float rotation,每次旋转 ShapeRenderer 时都会设置新值。要以度为单位设置旋转,您必须像这样旋转:

shapeRenderer.rotate(0, 0, 1, newRotation - rotation);
rotation = newRotation;

这仅在您始终围绕同一轴旋转时有效,在您的例子中为 Z 轴。否则你将不得不存储 3 个旋转 (x,y,z)。如果围绕自定义轴旋转,例如定义为 (0.1, 0.3, 0.6),则需要计算所有轴的旋转。但我真的不知道该怎么做。我认为一些 Vectormath 会这样做。但我认为您不需要那个。

关于java - 我如何在 libgdx 中设置固定的 shaperenderer 旋转?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22065069/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com