标签: physics

为什么Verlet集成比Euler集成更好?

有人可以向我解释为什么Verlet集成比Euler集成更好吗?为什么RK4比Verlet更好?我不明白为什么这是一个更好的方法.

physics game-physics verlet-integration runge-kutta

21
推荐指数
3
解决办法
9353
查看次数

计算一段时间后加速体的位置

如何在一定时间(例如1秒)后计算加速体(例如汽车)的位置?

对于一个没有加速的移动体,它是一个线性关系,所以我认为它是一个加速的身体,它涉及一个方形的某个地方.

有任何想法吗?

math equation physics

20
推荐指数
2
解决办法
4万
查看次数

有没有一种标准的pythonic方法来处理python中的物理单位/数量?

有没有一种标准的pythonic方法来处理python中的物理单位/数量?我从物理学或神经科学等不同领域看到了不同的模块特定解决方案.但我宁愿使用标准方法而不是"孤岛"解决方案,因为其他人应该能够轻松读取我的代码.

python physics units-of-measurement

20
推荐指数
2
解决办法
1771
查看次数

iOS 7 Sprite Kit释放内存

我正在构建一款针对新iOS 7和Sprite Kit的iOS游戏,使用发射器节点和物理来增强游戏性.在开发应用程序时,我遇到了一个严重的问题:您创建了场景,节点和效果,但是当您完成并需要返回主屏幕时,如何释放这些资源分配的所有内存?

理想情况下,ARC应该释放所有内容,应用程序应该恢复到创建场景之前的内存消耗级别,但这不是发生的事情.

我添加了以下代码,作为视图的dealloc方法,它绘制场景并负责在关闭(删除)后删除所有内容:

- (void) dealloc
{
    if (scene != nil)
    {
        [scene setPaused:YES];

        [scene removeAllActions];
        [scene removeAllChildren];

        scene = nil;

        [((SKView *)sceneView) presentScene:nil];

        sceneView = nil;
    }
}
Run Code Online (Sandbox Code Playgroud)
  • sceneView是一个UIView,它是场景的容器
  • scene是SKScene类的扩展,创建所有SKSpriteNode对象

我非常感谢你对此事的任何帮助.

memory-management physics game-physics ios sprite-kit

20
推荐指数
4
解决办法
1万
查看次数

Bullet vs Newton Game Dynamics vs ODE物理引擎

我正在尝试为简单的软件应用程序选择一个物理引擎.它将模拟相当少量的对象,因此性能不是一个大问题.我主要关心所涉议案的准确性.我还希望引擎在windows/linux/mac之间是跨平台的,并且可以与c ++代码一起使用.我在看Bullet,Newton Game Dynamics和ODE因为它们是开源的.但是,如果Havok/PhysX更精确,我也会考虑这些.

我似乎发现所有关于引擎的意见,这些选项之间是否有任何彻底的比较?或者有没有人有尝试各种引擎的经验.由于我想要做的事情相对简单,它们之间可能没有太大差异,但我想听听人们对这些选项的看法?谢谢!

c++ simulation comparison physics physics-engine

19
推荐指数
3
解决办法
2万
查看次数

子弹物理 - 在身体的局部空间中施加扭矩冲击

我正在评估Bullet物理库中我正在使用C++和Ogre3D编写的3D空间游戏.通过从btMotionState派生并插入我的SceneNodes,我已经很好地集成了Ogre3D和Bullet,但是现在我在计算我应该传递给btRigidBody :: applyCentralImpulse和btRigidBody :: applyTorqueImpulse方法的值时遇到很多麻烦才能实现我正在寻找的结果.

当我按下键盘上的左或右键时,我希望太空飞船在本地Z轴上滚动.当我按UP或DOWN时,我希望它在本地X轴上倾斜.当我按A或Z时,我希望它在局部Z轴的方向上加速/减速.我可以在Ogre中使用一些四元数学并直接在SceneNode上应用translate/rotation来实现这一点,但我真的想使用force/torque方法在Bullet引擎中应用这些值,这样它将继续移动/俯仰/滚动即使在用户停止按键之后,摩擦也会作用在物体上以根据需要减慢速度.

那么,我如何计算为这两种脉冲方法提供的必要值,以确保脉冲基于身体的当前方向而不是使用世界的轴?

谢谢,马克

更新:

我能够计算出向前和向后运动所需的冲动,但我仍在努力解决如何重新定向偏航/俯仰/滚转值以便将它们与扭矩脉冲方法一起使用.这是我进行前进/后退运动的方式:

if (mKeyboard->isKeyDown(OIS::KC_A))
    mBody->applyCentralImpulse(mBody->getWorldTransform().getBasis().getColumn(2) * 20 * time);
if (mKeyboard->isKeyDown(OIS::KC_Z))
    mBody->applyCentralImpulse(mBody->getWorldTransform().getBasis().getColumn(2) * -20 * time);
Run Code Online (Sandbox Code Playgroud)

c++ physics ogre3d bullet

18
推荐指数
1
解决办法
8371
查看次数

乒乓物理问题

我有问题,但我不知道如何描述它所以我画了它.

乒乓物理图形

当你发现碰撞时你可以看到球弹跳.没关系角度 - 我刚刚那样画了.但有时球会穿过桨而离开它.

为什么会这样?当我发现碰撞时,我将vx更改为-vx.在那种情况下我该怎么办?也改变了吗?但是如何检查桨球的哪一侧击中?

也许其他想法?

c++ math physics sfml

18
推荐指数
2
解决办法
3240
查看次数

将物理应用于Android View对象

我目前有一个Android应用程序,利用UI的原生android视图(例如imageviews /按钮等)

虽然这个应用程序不是游戏,也不需要任何繁重的图形或OpenGL,但我想加入一些与物理相关的交互.没有什么太重要但可能显示轻微的碰撞/反弹,减速/加速或可能的摩擦.

这可能是在android框架内模拟或使用像jbox2d这样的外部物理库而不必使用整个游戏引擎(如andengine,libgx等).

PS适用于API 15+

谢谢大家.

android physics box2d jbox2d

18
推荐指数
1
解决办法
1081
查看次数

两个移动四面体之间的连续碰撞检测

我的问题很简单.我有两个四面体,每个四面体都有一个当前位置,一个空间线速度,一个角速度和一个质心(实际上是旋转中心).

有了这些数据,我试图找到一个(快速)算法,它将精确地确定(1)它们是否会在某个时间点发生碰撞,如果是这种情况,(2)在它们碰撞了多长时间之后(3) )碰撞点.

大多数人会通过三角形 - 三角形碰撞检测来解决这个问题,但这会浪费一些冗余操作的CPU周期,例如在检查不同的三角形时检查一个四面体的相同边缘与另一个四面体的相同边缘.这只意味着我会稍微优化一下.没什么好担心的.

问题是我不知道任何公共CCD(连续碰撞检测)三角形 - 三角形算法,它考虑了自转.

因此,我需要一个输入以下数据的算法:

  • 三个三角形的顶点数据
  • 位置和旋转中心/质量
  • 线速度和角速度

并输出以下内容:

  • 是否有碰撞
  • 经过多长时间碰撞发生
  • 在空间的哪个点发生了碰撞

在此先感谢您的帮助.

physics collision-detection

17
推荐指数
1
解决办法
6056
查看次数

"LSB/Unit"和"Unit/LSB"的含义

目前我正在玩LSM303DLHC加速度计/磁力计/温度计.

这是它的数据表:http://www.st.com/st-web-ui/static/active/en/resource/technical/document/datasheet/DM00027543.pdf

一切都运作良好,但我不知道如何解释输出值.数据表(第9页)说的是关于我配置中的线性加速度灵敏度的"1 mg/LSB"(不,不是毫克:D).这到底应该是什么意思?与温度传感器输出变化(8 LSB /°C)和磁增益设置(1100 LSB /高斯)相同,只是相反.

例如,如何处理此加速度计输出:16384?那是我测得的重力加速度.

math physics electronics sensor

17
推荐指数
2
解决办法
4万
查看次数