草庐IT

android - 如何使用加速度计获得运动方向?

我正在开发一个Android应用程序,我想知道是否可以在固定一个轴的情况下检测运动方向。例如,我想将手机放在table上,并在移动时检测方向(左、右、上、下)。距离不是必须的,我只想知道准确的方向。 最佳答案 是的。使用SensorEventListener.onSensorChanged(SensorEventevent)您可以确定沿X和Y轴提供的值。您需要记录这些值,然后将它们与您在后续调用onSensorChanged方法时收到的任何新值进行比较,以获得增量值。如果一个轴上的delta值为正,则设备向一侧移动,如果其为负,则向

android - 将物理应用到 Android View 对象

我目前有一个android应用程序,它利用UI的原生androidView(例如imageviews/buttons等)虽然这个应用程序不是游戏,也不需要任何繁重的图形或OpenGL,但我想加入一些与物理相关的交互。没有什么太大的影响,但可能会出现轻微的碰撞/反弹、减速/加速或可能的摩擦。这是否可以在android框架内或使用外部物理库(如jbox2d)进行模拟,而无需使用整个游戏引擎(如andengine、libgx等)。附:这适用于API15+谢谢大家。 最佳答案 只要您可以设置/更新每帧UI元素的位置(例如,使用View.se

android - 将物理应用到 Android View 对象

我目前有一个android应用程序,它利用UI的原生androidView(例如imageviews/buttons等)虽然这个应用程序不是游戏,也不需要任何繁重的图形或OpenGL,但我想加入一些与物理相关的交互。没有什么太大的影响,但可能会出现轻微的碰撞/反弹、减速/加速或可能的摩擦。这是否可以在android框架内或使用外部物理库(如jbox2d)进行模拟,而无需使用整个游戏引擎(如andengine、libgx等)。附:这适用于API15+谢谢大家。 最佳答案 只要您可以设置/更新每帧UI元素的位置(例如,使用View.se

c++ - 弹道曲线问题

好吧,我知道这对于程序员来说是非常离题的,但我仍然需要这个应用程序,所以这里是:弹道曲线(无风或任何其他条件)由以下两条线指定:所以,有一个问题是您得到了3个未知值:x、y和时间t,但只有2个方程。你不能只用这些值来计算所有3个值,我得到了:速度v角度阿尔法原点坐标因此,您必须决定指定哪一个。现在你有了2D坦克游戏,或者类似的东西,你知道你有坦克,并且使用弹道你必须用设定的角度和力量击落对手。我需要知道子弹何时击中地面,它可以是在飞行时进行的,也可以是预先计算的。我的问题出现了。使用哪种方式?预先计算或检查每一步是否落地。如果我想预先计算,我需要知道地形的高度,这在逻辑上必须是恒定的,

c++ - 弹道曲线问题

好吧,我知道这对于程序员来说是非常离题的,但我仍然需要这个应用程序,所以这里是:弹道曲线(无风或任何其他条件)由以下两条线指定:所以,有一个问题是您得到了3个未知值:x、y和时间t,但只有2个方程。你不能只用这些值来计算所有3个值,我得到了:速度v角度阿尔法原点坐标因此,您必须决定指定哪一个。现在你有了2D坦克游戏,或者类似的东西,你知道你有坦克,并且使用弹道你必须用设定的角度和力量击落对手。我需要知道子弹何时击中地面,它可以是在飞行时进行的,也可以是预先计算的。我的问题出现了。使用哪种方式?预先计算或检查每一步是否落地。如果我想预先计算,我需要知道地形的高度,这在逻辑上必须是恒定的,

c++ - 计算浮点 vector 的点积时,灾难性取消是一个问题吗?如果是这样,它通常是如何解决的?

我正在用C++编写一个物理模拟器,我担心它的稳健性。我读过当计算两个几乎相等数量的差异时,浮点运算中可能会发生灾难性的取消。我突然想到,当计算两个几乎正交vector的点积时,这可能会发生在模拟器中。然而,我看过的引用文献只讨论了通过重写相关方程来解决问题(例如,可以重写二次公式以消除问题)——但这在计算点积时似乎并不适用?我想我很想知道这是否通常是物理引擎中的一个问题以及如何解决它。 最佳答案 一个常见的技巧是使累加器变量成为比vector本身具有更高精度的类型。或者,可以使用Kahansummation总结条款时。另一种方法是使

c++ - 计算浮点 vector 的点积时,灾难性取消是一个问题吗?如果是这样,它通常是如何解决的?

我正在用C++编写一个物理模拟器,我担心它的稳健性。我读过当计算两个几乎相等数量的差异时,浮点运算中可能会发生灾难性的取消。我突然想到,当计算两个几乎正交vector的点积时,这可能会发生在模拟器中。然而,我看过的引用文献只讨论了通过重写相关方程来解决问题(例如,可以重写二次公式以消除问题)——但这在计算点积时似乎并不适用?我想我很想知道这是否通常是物理引擎中的一个问题以及如何解决它。 最佳答案 一个常见的技巧是使累加器变量成为比vector本身具有更高精度的类型。或者,可以使用Kahansummation总结条款时。另一种方法是使

c++ - 乒乓物理题

我有问题,但我不知道如何描述,所以我画了。如您所见,当检测到碰撞时球会反弹。没关系-我只是这样画的。但有时球会穿过桨叶而离开。为什么会这样?因为当我检测到碰撞时,我将vx更改为-vx。在这种情况下我该怎么办?也改变y?但是如何检查桨球击中了哪一侧呢?也许还有其他想法? 最佳答案 对于编写pong克隆的人来说,这是一个很常见的问题。解决方案是,在检测到碰撞时,不仅要反转速度,还要改变球的位置,使其不与桨相交。否则球可能会卡在桨内,每帧不断否定vx=-vx=vx=-vx。它不会离开桨,直到它的y动量将它向上或向下移动到足以逃脱为止。

c++ - 乒乓物理题

我有问题,但我不知道如何描述,所以我画了。如您所见,当检测到碰撞时球会反弹。没关系-我只是这样画的。但有时球会穿过桨叶而离开。为什么会这样?因为当我检测到碰撞时,我将vx更改为-vx。在这种情况下我该怎么办?也改变y?但是如何检查桨球击中了哪一侧呢?也许还有其他想法? 最佳答案 对于编写pong克隆的人来说,这是一个很常见的问题。解决方案是,在检测到碰撞时,不仅要反转速度,还要改变球的位置,使其不与桨相交。否则球可能会卡在桨内,每帧不断否定vx=-vx=vx=-vx。它不会离开桨,直到它的y动量将它向上或向下移动到足以逃脱为止。

c++ - Bullet vs Newton 游戏动力学 vs ODE 物理引擎

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭7年前。Improvethisquestion我正在尝试为一个简单的软件应用程序选择一个物理引擎。它将模拟相当少量的对象,因此性能不是一个大问题。我最关心的是所涉及的Action的准确性。我还希望引擎在windows/linux/mac之间是跨平台的,并且可以与c++代码一起使用。我正在研究Bullet、NewtonGameDynamics和ODE,因为它们是开源的。但是,如果Havok/PhysX更准确,我也会考虑这些。我似乎只能找