问题标签 [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.
math - 4d 和 n 维物理引擎
有人试图实现 4d 或 n 维物理实时(或非)引擎吗?
与 3d 和 2d 物理引擎相比,这个实现有什么困难?当然,其中之一是演示问题。这是一个有趣的查看和了解更多关于 4d 超球体、超立方体、弹簧、关节、液体和其他物体的信息。
我只是好奇,并没有真正的应用程序使用它。
我的想法的概括是 lobachevskian 或 riemann 几何中的物理学、扭曲空间(你可以穿过针眼)、环形空间(回到同一个地方)、物理学悖论和其他令人惊奇的事情。
objective-c - 什么是检查数组中对象之间冲突的好方法?
我一直在另一个 for 循环中进行 for 循环,以便同时从数组中获取 2 个对象,但必须有更好的方法。我只想检查它们是否发生碰撞,然后将它们从视图和数组中删除。
objective-c - 无法将对象添加到 NSMutableArray
再会 !我使用物理引擎“花栗鼠”。尝试通过单击创建动态对象。AddBalls() 创建所需的身体和形状。通过单击它必须生成一个新对象并将其放入数组中。
方法 AddBalls 应该将新形状放入数组中。但我得到了错误“ EXC_BAD_ACCESS...
”。我应该怎么办?谢谢
c++ - 在游戏中的图形和物理引擎之间共享数据?
我正在编写一个由几个模块组成的游戏引擎。其中两个是图形引擎和物理引擎。
我想知道在他们之间共享数据是否是一个好的解决方案?
两种方式(共享与否)看起来像这样:
不共享数据
我看到两个主要问题:
- 大量冗余数据(例如物理和图形数据的两个位置)
- 更新数据的问题(我必须在物理数据更改时手动更新图形数据)
通过共享数据
这里的问题:
physicsEngine
无法创建新对象,只需从 engine3D 中“分配”现有对象(不知何故,它对我来说看起来更加反独立)- 在 assignModel3D 函数中转换数据
physicsEngine
并且graphicsEngine
必须小心 - 当他们不需要数据时,他们不能删除数据(因为第二个可能需要它)。但这是一种罕见的情况。此外,他们可以只删除指针,而不是对象。或者我们可以假设这graphicsEngine
将删除对象,physicsEngine
只是指向它们的指针。
哪种方式更好?
未来哪个会产生更多的问题?
我更喜欢第二种解决方案,但我想知道为什么大多数图形和物理引擎更喜欢第一种(可能是因为它们通常只制作图形或只制作物理引擎,而其他人在游戏中将它们连接起来?)。
他们还有更多隐藏的优点和缺点吗?
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有点困惑
再次感谢!
android - 用于移动编程的物理 Flex 库
我正在寻找与 Flex 4 兼容的物理库。
有什么建议吗?
是否有任何物理库与 iPhone 和 Android 兼容?
physics - 基于物理的步行(从一个新的零开始)
看到这个视频,我很惊讶,很自然地,我想尝试自己做。http://www.youtube.com/watch?v=P_DeZUg9HiY
有谁知道他是如何让角色走路的?看1:15的视频。你认为他在腿上使用了什么样的 Bullet 物理约束?他是在制造某种弹簧吗?
c# - 物理助手xaml revolve
我是初学者,所以请多多包涵。我正在使用物理帮助程序 XAML 库 ( Farseer ) 在我的应用程序中使用物理。
目前,我遇到以下问题
有一个物体,特别是一个三角形,围绕一个点旋转,同时它的顶点指向圆形关节。
同样在我让三角形旋转(没有顶点指向)后,当它达到角速度时
0.016
,对象开始抖动很多。
请问有人可以帮我解决这个问题吗?在这背后花了这么多小时后,我处于理智的边缘。看起来并且应该相当简单,但是却避开了我
android - 带有 Box2D 扩展的 AndEngine
我是 AndEngine 的新手。我做了一些研究,发现了 Box2D 的两个扩展。一种由 Nicholas Gramlich 自己开发:https ://github.com/nicolasgramlich/AndEnginePhysicsBox2DExtension ,另一种由 Real Mayo 开发:https ://github.com/RealMayo/AndEnginePhysicsBox2DExtension
现在,我很困惑我应该使用哪一个?谁能解释一下这两者有什么区别以及我应该使用哪个扩展?
问候,Syed Umair。
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 在较小的项目上存在渲染问题——没有变化。
- 尝试将身体更改为胶囊形状 - 没有变化