当前位置: 首页 > 知识库问答 >
问题:

LibGDX摄像机旋转问题

梁池暝
2023-03-14

我正在尝试围绕我的模型旋转我的透视相机。模型位于中心(0,0,0)点。这是我的旋转相机方法:

private void rotateCameraAroundModel() {
    camera.position.set(0,0,0);
    camera.position.rotate(Vector3.Y, 5);
    camera.position.add(0f, 0f, 200f);
    camera.up.set(Vector3.Y);
    camera.lookAt(0,0,0);
    camera.update();
}

我试着去中心,旋转5度,然后回到同样的距离。然而,旋转似乎不起作用,我不知道为什么,任何帮助都非常感谢。

共有1个答案

费秦迟
2023-03-14

我想出来了:)

private void rotateCameraAroundModel(float angle) {
    camera.position.set(centreX, centerY, centerZ);
    camera.rotate(Vector3.Y, (float) Math.toDegrees(angle)); // Rotate around Y axis by angle in degrees
    float x = (float) (centerX + radius * (Math.sin(totalPhi)));
    float z =  (float) (centerZ + radius * (Math.cos(totalPhi)));
    camera.position.add(x, 0f, z); //Move back out 2m using pythagorean theorem to calculate the position on the circle
    camera.up.set(Vector3.Y);
    camera.lookAt(0, 0, 0);
    camera.update();
}

所以我需要在旋转时计算圆上的新位置,这是我用一些基本的三角学做的

 类似资料:
  • 当我旋转图像(图像类)时,我需要帮助解决一个小问题。 这个想法是旋转一个球形图像,移动是通过手指的触摸和拖动,它可能是顺时针的,也可能不是顺时针的,到目前为止,这是正确的。 我希望当球体的角度是90的倍数时会发生一些事情,问题是当我用手指旋转球体时,有时它太快了,以至于球体的角度不总是通过90的倍数,例如,如果它在87,当我移动手指时,它会在不接触90的情况下移动到94。 这是我的拖动旋转代码 我

  • 在我的应用程序中,用户从相机捕获图像或从图库中选择图像,然后将其转换为pdf并上载到服务器,现在我的问题是,从相机捕获的图像在某些设备上旋转,我有代码尝试解决此问题,但它不起作用 任何建议或问题在哪里,没有错误代码或任何东西

  • OpenGL总是围绕(0,0,0)旋转。但是我需要绕着相机旋转。我知道在GL中,没有相机,但是如果我翻译回(0,0,-6.0),它会绕着(0,0,0)旋转,而不是绕着(0,0,-6.0)旋转 所以我的问题是:如何在opengl和c中设置旋转中心 我已经找到了这篇文章:OpenGL围绕一个点旋转相机 显示此解决方案的地方: 旋转函数通常围绕原点旋转。要围绕另一个点P旋转,必须:平移(-P)旋转平移(

  • 我正在使用平铺地图编辑器创建一个简单的平铺地图。在我的地图中,我有几个矩形,如果我创建一个宽度为50,高度为10的矩形,并将其旋转正好90°,保存地图并将其加载到我的LibGDX项目中,形状会正确呈现——但是如果我使用随机角度,例如26°,然后我再次渲染地图,我没有得到所需的结果,事实上我得到了完全相反的所需角度。 我使用以下方法直接从地图读取平铺地图浮动: 数学。degRad将直接从地图属性读取

  • 好吧,我真的很困惑,我以前旋转过精灵,没有问题,比如当船在海洋中移动时旋转它,但是出于某种原因,这次我遇到了一个非常大的问题。所以我在资产文件中创建了一个纹理,但不是静态纹理。我使用以下方式加载纹理: 然后我通过调用来调用主类中的资产: 然后我有一个专门为这个主要角色设计的动画课程,因为他的动画与其他角色非常不同。 然后我有一个渲染类来绘制所有东西,我有对象在一个名为的世界对象中,我用以下方式绘制

  • 我目前有一个游戏,有一个地图是480x3200,一个人从顶部掉下来。镜头跟在人的后面,随着人的下落有平台。平台需要是可触摸的,所以我可以在游戏中旋转和移动它们,所以我把它变成了一个图像,而它原本只是一个精灵。 编辑: