问题标签 [physics-engine]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
1902 浏览

math - 4d 和 n 维物理引擎

有人试图实现 4d 或 n 维物理实时(或非)引擎吗?

与 3d 和 2d 物理引擎相比,这个实现有什么困难?当然,其中之一是演示问题。这是一个有趣的查看和了解更多关于 4d 超球体、超立方体、弹簧、关节、液体和其他物体的信息。

我只是好奇,并没有真正的应用程序使用它。

我的想法的概括是 lobachevskian 或 riemann 几何中的物理学、扭曲空间(你可以穿过针眼)、环形空间(回到同一个地方)、物理学悖论和其他令人惊奇的事情。

0 投票
4 回答
245 浏览

objective-c - 什么是检查数组中对象之间冲突的好方法?

我一直在另一个 for 循环中进行 for 循环,以便同时从数组中获取 2 个对象,但必须有更好的方法。我只想检查它们是否发生碰撞,然后将它们从视图和数组中删除。

0 投票
1 回答
148 浏览

objective-c - 无法将对象添加到 NSMutableArray

再会 !我使用物理引擎“花栗鼠”。尝试通过单击创建动态对象。AddBalls() 创建所需的身体和形状。通过单击它必须生成一个新对象并将其放入数组中。

方法 AddBalls 应该将新形状放入数组中。但我得到了错误“ EXC_BAD_ACCESS...”。我应该怎么办?谢谢

0 投票
1 回答
1350 浏览

c++ - 在游戏中的图形和物理引擎之间共享数据?

我正在编写一个由几个模块组成的游戏引擎。其中两个是图形引擎物理引擎

我想知道在他们之间共享数据是否是一个好的解决方案?

两种方式(共享与否)看起来像这样:

不共享数据

我看到两个主要问题:

  1. 大量冗余数据(例如物理和图形数据的两个位置)
  2. 更新数据的问题(我必须在物理数据更改时手动更新图形数据)

通过共享数据

这里的问题:

  1. physicsEngine无法创建新对象,只需从 engine3D 中“分配”现有对象(不知何故,它对我来说看起来更加反独立)
  2. 在 assignModel3D 函数中转换数据
  3. physicsEngine并且graphicsEngine必须小心 - 当他们不需要数据时,他们不能删除数据(因为第二个可能需要它)。但这是一种罕见的情况。此外,他们可以只删除指针,而不是对象。或者我们可以假设这graphicsEngine将删除对象,physicsEngine只是指向它们的指针。

哪种方式更好?

未来哪个会产生更多的问题?

我更喜欢第二种解决方案,但我想知道为什么大多数图形和物理引擎更喜欢第一种(可能是因为它们通常只制作图形或只制作物理引擎,而其他人在游戏中将它们连接起来?)。

他们还有更多隐藏的优点和缺点吗?

0 投票
1 回答
467 浏览

cocos2d-iphone - 在 Box2d 中理解身体定位时遇到问题。关于事情如何运作的任何指示?

我正在努力学习和理解 box2d。这是我的问题:

我正在尝试制作一辆简单的汽车,车身现在看起来像这样:

在此处输入图像描述

现在我正在尝试添加一个轮子,创建轮体,并假设我将使用 b2RevolutionJoint 将轮子链接到车身。

在我到达那个部分之前,我只想能够将轮子定位在它的位置上,所以相对于 bodyCar Body。我该如何正确地做到这一点?

我在网上看到的是这样的:

但是,我不明白该表达式的 cos 和 sin 部分。

我想要做的是:

由于我的 carBody 顶点定义如下所示:

上述定位轮子的方法的结果看起来有点正确(见下面的截图),但如果你看看上面的数字,它没有多大意义。

由于 carBody 宽度为 100.0/PTM_RATIO,我假设 GetWorldCenter().x 将返回一个等于 50.0/PTM_RATIO 的值。

所以车轮位置会在 30.0/PTM_RATIO 计算之后,对吗?

好吧,如果您查看下面的结果,车轮 x 定位似乎在 20.0/PTM_RATIO。

在此处输入图像描述

有人可以解释一下如何在 Box2D 中使用与其他机构相关的定位机构吗?一旦我清楚了这些事情,我将继续使用关节将它们连接起来

非常感谢!

稍后编辑基于 iforce2d 答案:

感谢 iforce2d 的回答,并感谢您在 box2d 世界中提供的所有良好见解。你说的完全正确,但这不是我的问题。

一旦我发现 GetWorldCenter 返回重心,GetPosition 返回对象的位置原点,就很容易将我的轮子准确地放置在我需要它与 carBody 相关的位置。尽管我仍然得到它出现在身体下方的行为,但我知道一旦我将关节添加到方程中,这将得到修复。

现在我有另一个与这个定位问题有关的问题。看看下面的图片:

在此处输入图像描述

一旦我将它们的锚点设置如下,这是我的关节应该看起来的正确方式吗?我对他们从原点而不是从锚点A到锚点B有点困惑

再次感谢!

0 投票
1 回答
124 浏览

android - 用于移动编程的物理 Flex 库

我正在寻找与 Flex 4 兼容的物理库。

有什么建议吗?

是否有任何物理库与 iPhone 和 Android 兼容?

0 投票
1 回答
247 浏览

physics - 基于物理的步行(从一个新的零开始)

看到这个视频,我很惊讶,很自然地,我想尝试自己做。http://www.youtube.com/watch?v=P_DeZUg9HiY

有谁知道他是如何让角色走路的?看1:15的视频。你认为他在腿上使用了什么样的 Bullet 物理约束?他是在制造某种弹簧吗?

0 投票
0 回答
60 浏览

c# - 物理助手xaml revolve

我是初学者,所以请多多包涵。我正在使用物理帮助程序 XAML 库 ( Farseer ) 在我的应用程序中使用物理。

目前,我遇到以下问题

  1. 有一个物体,特别是一个三角形,围绕一个点旋转,同时它的顶点指向圆形关节。

  2. 同样在我让三角形旋转(没有顶点指向)后,当它达到角速度时0.016,对象开始抖动很多。

请问有人可以帮我解决这个问题吗?在这背后花了这么多小时后,我处于理智的边缘。看起来并且应该相当简单,但是却避开了我

0 投票
1 回答
185 浏览

android - 带有 Box2D 扩展的 AndEngine

我是 AndEngine 的新手。我做了一些研究,发现了 Box2D 的两个扩展。一种由 Nicholas Gramlich 自己开发:https ://github.com/nicolasgramlich/AndEnginePhysicsBox2DExtension ,另一种由 Real Mayo 开发:https ://github.com/RealMayo/AndEnginePhysicsBox2DExtension

现在,我很困惑我应该使用哪一个?谁能解释一下这两者有什么区别以及我应该使用哪个扩展?

问候,Syed Umair。

0 投票
0 回答
109 浏览

java - jBullet - 6DOFConstraint 剧烈振荡

我制作了一个简单的多循环蛇身。我在每个身体之间有一个6DOFConstraint,角度是通过增加/减少旋转的上限和下限来控制的,从而改变角度。

绕水平轴旋转效果很好,但是当绕垂直轴旋转时,一旦达到大约1.05rads的角度,两个物体就会剧烈振动。

屏幕截图可以在这里找到,其中的描述更详细地介绍了我所做的事情:

http://www.youtube.com/watch?v=OQu-YyxLvbw

以下屏幕截图显示了蛇的“头部”在约束仍然存在的情况下线性分离,以尝试消除发生碰撞问题的可能性:

http://www.youtube.com/watch?v=6wso6HDjqXA

我尝试了以下技术来解决问题,但都没有奏效:

  • 将恢复(弹性)设置为非常低——同样的情况
  • 将线性阻尼和角度阻尼都设置为 0
    到 1 之间的值范围——同样的情况
  • 将角度设置为从大于 1.05 开始 - 发生同样的情况。
  • 继续增加超过 1.05 的角度,看看是否平静下来——相反的情况会发生,它会变得更加猛烈。
  • 试穿单关节——同样的情况
  • 检查深度渗透 - 不存在
  • 线性分离两个物体以排除碰撞问题,但保持关节相同——同样发生。
  • 将蛇(除了头部以外的所有部分的质量 = 0f)漂浮在地面上以消除地面相互作用 - 也会发生同样的情况
  • 在锁定位置关闭重力 - 行为延迟到 1.43rads
  • 增加蛇的大小(比例),因为众所周知,jBullet 在较小的项目上存在渲染问题——没有变化。
  • 尝试将身体更改为胶囊形状 - 没有变化