问题标签 [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 投票
1 回答
272 浏览

random - AwayPhysics 或物理引擎中是否有随机因素?

假设我扔了一个立方体,它以 45、45、0 旋转(在它的角落)落在地上。现在在一个“完美”的世界里,立方体不会由原子组成,它会是“完美的”,不会有风(或任何较小的空气运动)等等。最后立方体会保持原样角落。但是我们并不是生活在一个如此无聊的“完美”世界中,物理模拟器应该考虑到这一点,它们做得很好。所以立方体落在它的一边。

现在我的问题是,这有多随机?立方体总是落在它的左边吗?或者它可能取决于 Math.random()?或者可能取决于当前时间?或者它可能取决于一些自定义的随机函数,它不需要时间,而是舞台上对象的参数,因为它是种子?

为什么我提出这个问题是,如果随机性不是基于时间的,我可能可以缓存碰撞结果(当对象停止时),以优化我的动画?如果我缓存了整个动画,我不会在意,但如果我只缓存最终结果,我可能会感到惊讶的是,两个完全相同的情况可以评估为不同的结果,然后另一个不适合我的缓存版本。

我可以只检查 Math.random 函数的源代码,但这将是一种肤浅的方法,因为代码肯定已经过优化,并且那里不需要如此复杂的随机化,我个人会使用类似 fallLeft = time % 2 的东西。此外,代码可能会随着时间而改变。

在这里找不到任何关于 AwayPhysics 的信息,所以这可能对每个人来说都是新事物——这就是我添加括号部分的原因;如果我假设一件事,世界就不会爆炸,而在 AwayPhysics 中恰好相反,标准是什么?

0 投票
1 回答
324 浏览

collision-detection - 如何将相机图像集成到物理引擎中?

我最近看到了这个视频,并想实现类似的东西。基本方法很明确:我必须对图像进行阈值处理并检查虚拟对象是否与剩余的前景发生碰撞。

我不想自己实现物理,而是使用像 Box2D 这样的引擎。但是如何将阈值图像集成到物理引擎中,以便与虚拟对象进行交互?

0 投票
1 回答
59 浏览

actionscript-3 - 有没有办法找到在给定时间作用在身体上的所有单独的力(如 b2Vec2)?

我是 Box2D 的新手(和一般的 actionscript),我正在为物理学生制作一种教学工具。我试图能够显示在给定时刻作用于身体的力(作为矢量)。有没有一种方法可以找到作用在物体上的单独矢量(例如摩擦力、法向力、重力等)并让它们可以使用?任何帮助将不胜感激。

0 投票
1 回答
837 浏览

iphone - Cocos2d Chipmunk 重力和碰撞检测

我在 Cocos2d Chipmunk 中有一个简单的动画,其中包含以下任务:

  • 一个位于屏幕中央的圆形精灵,刚体类型。重心需要位于这个精灵的中心。
  • 从屏幕的不同侧面(自发地超出屏幕尺寸),其他刚性圆形精灵必须落入中央精灵以填充可见的屏幕空间。
  • 精灵不应相互重叠。

所以问题是:

  1. 如何将重力矢量重新分配到屏幕中心?
  2. Cocos2d Chipmunk中如何实现刚体类型之间的碰撞检测?

谢谢各位同事!

0 投票
2 回答
1154 浏览

javascript - 使用图像模拟重力的 2D 物理引擎

我正在寻找一个 2D 物理引擎来使用图像模拟重力,最好是具有透明度的 PNG 图像。因此引擎将知道如何根据图像的不透明部分计算碰撞。我只发现了适用于原始形状和基本 HTML 元素的 Javascript 引擎,但不适用于图像。

0 投票
2 回答
959 浏览

javascript - D3 的力导向布局基础

我正在使用 d3.js 进入令人兴奋的力导向布局世界。我已经掌握了 d3 的基础知识,但我无法弄清楚设置力导向布局的基本系统。

现在,我正在尝试创建一个简单的布局,其中包含一些浮动到中心的未连接气泡。很简单吧!?创建了正确的圆圈,但没有任何反应。

编辑:问题似乎是 force.nodes() 返回初始数据数组。在工作脚本上, force.nodes() 返回一个对象数组。

这是我的代码:

0 投票
1 回答
196 浏览

objective-c - 将精灵移动到触摸点,触摸时间越长,速度越快

如何将精灵移动到 x 轴上的接触点,增加速度.x。触摸的时间越长速度越快,那么当它进入一定范围的触摸点或用户松开手指时,再放慢速度?

我有一个带有速度值的播放器类设置,它在更新方法中更新,但不确定如何在触摸方法中获得所需的行为?

干杯,

刘易斯

0 投票
1 回答
1285 浏览

c++ - 在对象旋转/平移后重新计算正确的 AABB

我在这里看到了这个主题,但它并没有真正帮助我解决问题:( )因为我正在使用 libqglviewer 并且出于某种奇怪的原因,如果我确实使用 glLoadIdentity() 对象(常规立方体)会消失:(所以我的解决方法是每次我必须使用 glPopMatrix 和 glPushMatrix 来保持世界矩阵完好无损翻译/旋转一个对象。原始矩阵被存储起来,然后一旦翻译/旋转完成,我就会再次将其弹出。

到目前为止效果很好,但是一旦我尝试实现边界框的重新计算,我的框从与立方体相同的位置开始,但是一旦我开始旋转它,边界框有时会“内爆”,因此我需要检查最大值/min 角落,所以它们不会比立方体本身小,但是当我旋转相机时,边界框会移动到一侧或另一侧。

我正在使用 GLM 加载模型,不幸的是旧版 OpenGL,我对旧版 OGL 的工作原理有些熟悉,但我认为重新计算边界框时的计算有些不对劲。

这段代码在我的渲染函数中:

这是我设置边界框的代码:

最后一块是我重新计算盒子的地方:

我一直在尝试关注这篇文章如何在平移/旋转后重新计算轴对齐边界框?但还没有设法让它与我上面的代码一起工作。

关于我哪里出错的任何指示都会有所帮助。

0 投票
1 回答
512 浏览

ios - 带有加速度计的 iOS 滑动距离

我正在尝试使用加速度计测量设备滑动的距离。这就是我的做法:

结果非常不稳定,范围为实际值的 +/- 30%。我的计算是否正确,如果是,我怎样才能使这段代码更准确?

0 投票
1 回答
3374 浏览

c++ - 子弹物理刚体从表面反弹

我为我的游戏编写了一个玩家控制器,它使用刚体为玩家提供物理效果。我将恢复力和摩擦力都设置为 0,质量设置为 80。我的地形具有完全相同的属性,只是质量也是 0。每当玩家从高处坠落时,它会在地形表面反弹几次。这真的不是我希望我的玩家做出反应的方式。有没有办法防止这种行为?

这是一个说明我的问题的视频。它有点滞后,因为我使用 QuickTime 录制了它,但它应该明白这一点。

http://www.youtube.com/watch?v=2eQ1cj7hpWw