我最近几周一直在使用 Open Dynamics Engine (ODE) 并且非常成功。它有一个非常简单的 API,在模拟方面至少看起来是真实的。(我有时会对我的碰撞关节参数产生疑问,但是无论如何。) 我唯一的抱怨是,有时它很慢。如果我简单地模拟1000个以上的相互作用体系,那么我的性能就...
我正在为一款游戏开发2D物理引擎。目前,我已经成功实现了重力和质量的计算,使用一种简单的迭代方法(我知道我最终需要升级);我可以手动推动物体并观察它们移动,一切都按照我的期望工作。 现在,我想提前在游戏世界中设置一个卫星,在一个简单的圆形轨道上绕行行星。为了做到这一点,我需要计算出给定行星质...
好的,我有一堆球: 我正在尝试弄清楚如何使这些圆: 根据它们接触的表面旋转 在处理多个接触对象时,修复碰撞穿透。 编辑: 这就是我所说的旋转 Ball 0 倾斜在 Ball 3 上时会逆时针旋转 Ball 5 倾斜在Ball 0 上时会顺时针旋转 虽然解决...
我目前正在为一个物理引擎(业余项目)编写KDTree。 KDTree不包含点。 相反,它包含用于环境中不同对象的轴对齐边界框。 我的问题是如何在节点满时决定如何拆分KDTree节点。 我正在尝试两种方法: 方法1:始终在最大轴上将节点完全平分。 这有一个优点,即树的分布相当均匀。 很...
我正在使用一个游戏物理库 (Box2D),它仅支持凸多边形形状。但是,我希望级别构建者能够轻松指定凹多边形而不必担心这个问题。 那么,如何自动将凹多边形分解为凸形或三角形呢?速度显然很重要,但易于实现更为关键。这个分解过程将仅在游戏初始化时进行。 (我的语言是 Flash/ActionSc...
我正在开发一个游戏,其中包含追踪导弹。目前它们只会朝向目标,导致所有的导弹一起跟随目标移动的结果看起来有些愚蠢。 我想创建一种更致命的导弹,它将瞄准目标“将要到达”的位置,但我现在遇到了一些困惑,不知道该如何做。 我猜我需要在未来的某个时间点上计算出我的目标将在哪里(无论如何是一个猜测),...
我正在尝试实现一个二维的n体模拟的OpenMP版本。但是有一个问题:我假设每个粒子的初始速度和加速度都为零。当这些粒子第一次聚集在一起时,它们会以高速分散开来,而不会再次聚集在一起。这似乎与牛顿定律不一致,对吗?有人能解释一下为什么会发生这种情况并告诉我如何修复错误吗?以下是我的代码的一部分:...
我正在建立一个小型的物理引擎,但是在使用 atan 时无法将弧度值转换为角度值,因为我需要输出角度。 首先,我有一个 x 和 y 的值,并且我需要使用 atan 来找到一个角度,所以我将 y 除以 x ,如下所示:angleDivide = yN / xN; 然后,在将此值放入tan之前,我...
我知道这样做是不起作用的,因为我已经尝试过: if $r ~~ BearingTrue || CompassAdj || CourseAdj { nextsame }; 但是 - 是否有一种简洁明了、易读的方法来在同一行上执行多个类型智能匹配,而不必扩展到给定/when或if/else结构?