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

如何在Java中使一个相机朝着它所面对的方向移动?

仇阳州
2023-03-14
South = x, y, z+
SouthWest = x+, y, z+
West = x+, y, z
NorthWest = x+, y, z-
North = x, y, z-
NorthEast = x-, y, z-
East = x-, y, z
SouthEast = x-, y, z+

共有1个答案

咸亦
2023-03-14

假设你想以距离k向y方向移动摄像机。为了简单起见,我将你的方向转换成角度,其中0.0代表右,Pi/2代表上,Pi代表左,3*Pi/2代表下,以此类推。

编辑:正如你所说,相机的y只会受到音高的影响。X和z将同时受到偏航和俯仰的影响。

您可以通过以下方法计算新的x、y和z:

float y = // Yaw angle
float p = // Pitch angle
float k = // Move distance

float xzLength = cos(p) * k;
float dx = xzLength * cos(y);
float dz = xzLength * sin(y);
float dy = k * sin(p);

// Update your camera:
camera.x += dx;
camera.y += dy;
camera.z += dz;
 类似资料:
  • 我试图让三个不同的块从屏幕的一侧前后移动到另一侧。如果最右边的方块达到游戏画面的宽度,它的速度会反转,并开始向左移动。然而,我的问题存在于另外两个街区。我在代码中加入了一个方法,说明一旦第二个方块达到(游戏宽度-100),100只是每个方块的宽度,它的速度应该是相反的。第三个方块除了到达x点(游戏宽度-200)外,其他功能都是一样的。在下面发布的PlayState类中的UpdateBlocks方法

  • 问题内容: 我正在尝试创建一个程序,该程序将绘制2个球,其中一个在北中心,另一个在南中心。我需要将球朝不同的方向移动,北侧的第一个球随机向南移动,南侧的另一个球向北移动。我可以使“北中心”球向下移动,但在绘制后,在南侧的第二个球会消失。 PS:我需要有2个内部类,分别是和。请帮忙。非常感谢。 问题答案: 问题… 在事件调度线程中,该线程可调整图形对象的位置 在方法上。 不打电话 在方法中更新对象的

  • 我有一个用WASD控制的相机,但是我一直在左右移动它。我一直在网上寻找,它说要找到一个垂直于另一个向量的向量,你改变x和y的圆,并将其中一个乘以-1。我在下面的代码中尝试过这个: 我一直在向前移动,工作得很好,实际上是在转动相机,但由于某些原因,这不起作用,老实说,我不确定它到底是做什么的,因为当我按下或(他们称之为该功能)时,相机会发疯,开始非常快速地转动,有时会向前移动,或者像100万英里以外

  • 本文向大家介绍Android改变手机屏幕朝向的方法,包括了Android改变手机屏幕朝向的方法的使用技巧和注意事项,需要的朋友参考一下 本文实例讲述了Android改变手机屏幕朝向的方法。分享给大家供大家参考。具体如下: 模拟当点击按钮时,使手机朝向发生改变。 main.xml布局文件: 清单文件: OrientationActivity类: 运行结果: 希望本文所述对大家的Android程序设计

  • 问题内容: 我一直在四处张望,我至少找到了一个不清楚的答案。 我正在使用GUI构建一个非常基本的聊天应用程序,并且已经将GUI与连接对象分离了。现在,我需要在服务器类中从GUI调用一种方法,反之亦然。但是我不太了解如何做到这一点(即使使用“ this”也是如此)。这是一部分代码的样子(这是一个名为server_frame的类): 这是来自server_frame的代码,srv是另一个类(服务器)中

  • 在我的应用程序中,我添加了图像上传功能,它可以很好地处理除相机图像之外的所有图像,每当我从画廊浏览相机图像时,肖像图像旋转90度。下面是我的代码片段。有人能帮我吗?我遵循了很多教程,但它们在kikat中都很好。但当同一教程不适用于ics、jellybean等时。。