标签: physics

开源物理引擎

过去几周我一直在使用Open Dynamics Engine(ODE)并取得了巨大的成功.它有一个非常简单的API,它的模拟至少看起来很逼真.(我有时想知道我的碰撞关节参数,但无论如何.)

我唯一的抱怨是它有时候是一只狗.如果我天真地模拟1000个相互作用的身体,那么我的表现开始潜水.

我知道我可以花时间使用空间网格来减少碰撞系统的负载,但在我调整代码以使用ODE之前,我想知道是否还有其他开源/自由物理引擎值得一看在.这将是一个商业应用程序,所以我正在寻找一些比一些大学生的周末项目更坚实,更实战的测试.

open-source physics

14
推荐指数
2
解决办法
1万
查看次数

开源,纯Java物理/动态库

我正在寻找一个轻量级的纯Java物理引擎来为机器人运动控制做一些模拟.

我的要求:

  • 刚体物理学
  • 联合约束和力量
  • 凸面物体碰撞检测
  • 轻量级,纯Java,因此可以嵌入我的应用程序中
  • 能够快速运行模拟
  • 舒适地处理50-100个物体
  • 开源

您是否可以推荐任何适合该法案的现有库,而不是重新发明轮子?

ps我已经使用Google搜索了 - 我只是希望得到已经使用或实施此类内容的人的诚实意见!

java simulation open-source physics collision-detection

14
推荐指数
1
解决办法
1977
查看次数

KDTree分裂

我目前正在为物理引擎(Hobby项目)编写KDTree.

KDTree不包含点数.相反,它包含Axis Aligned边界框,它绑定环境中的不同对象.

我的问题是决定如何在KDTree节点满了时拆分它们.我正在尝试2种方法:

方法1:始终将节点在最大轴上精确地分成两半.

  • 这具有相当均匀间隔的树的优点.
  • 大缺点:如果对象集中在节点的小区域中,则将创建冗余子分区.这是因为所有卷都被分成两半.

方法2:查找包含对象的节点区域.拆分平面上的节点,该节点将该区域在其最大轴上分成两半.示例 - 如果所有对象都集中在节点的底部,则它按长度方式分割,从而将底部分成两部分.

  • 这解决了上述方法的问题
  • 索引存在于同一平面(例如地形)上的内容时,会创建长而窄的节点.如果我稍后要添加一些不在同一平面上的其他对象,则这些细长节点提供非常差的索引.

所以我在这里寻找的是分割我的KD-Tree节点的更好方法.考虑到这将是一个物理引擎,决策需要足够简单,以便实时进行.

algorithm physics kdtree game-physics

14
推荐指数
1
解决办法
9618
查看次数

C++中的N体仿真

我正在尝试实现2维n体仿真的OpenMP版本.

但是存在一个问题:我假设每个粒子的初始速度和加速度都为零.当颗粒首先聚集在一起时,它们会高速分散,不再聚集.

这似乎与牛顿法不一致,对吧?

有人可以解释为什么会发生这种情况以及如何解决错误?

这是我的代码的一部分:

/* update one frame */
void update() {
    int i, j;

    omp_set_num_threads(8);
    # pragma omp parallel private(j)
    {

    # pragma omp for schedule(static)
        for ( i = 0; i < g_N; ++i ) {
            g_pv[i].a_x = 0.0;
            g_pv[i].a_y = 0.0;
            for ( j = 0; j < g_N; ++j ) {
                if (i == j)
                    continue;
                double r_2 = pow((g_pv[i].pos_x - g_pv[j].pos_x),2) + pow((g_pv[i].pos_y - g_pv[j].pos_y),2);
                g_pv[i].a_x += (-1) * G * g_pv[j].m …
Run Code Online (Sandbox Code Playgroud)

c++ simulation physics openmp numerical-methods

14
推荐指数
1
解决办法
3475
查看次数

2D软体:Gelly和可塑?

我正在使用Matter.js物理来创建柔体.我能够创建这样的身体:

thing.js柔软的身体

但是我不确定这是否是我想要的"软体".确实,这个身体并不是完全僵硬的,并且当它碰撞并被拖拽时具有那种有弹性的感觉.我正在寻找一个与凝胶有相似之处的身体.此图像可能在视觉上有助于解释概念:

想-胶状体

我想知道如何制作这些类型的尸体.它与as matter.js软体相同,但具有非常特殊的属性类型吗?我只能让身体变得僵硬,而不是像我希望的那样可塑造和圆形.

我也很有兴趣通过游戏中的相互作用操纵物理体,这会增加或减少物理体的大小,这使我再次得出结论,我想要的身体类型必须是相当可塑的.

may.js可以处理这个还是我必须更改物理引擎?任何接近这个的解决方案?

注意:我使用Phaser.js作为一些游戏中的组件,但是物理操作的物理问题是物理操作,因为我相信Phaser集成的物理学不能模拟这种类型的复杂体.

谢谢

编辑:它非常类似于这个Box2d:滚动软体球.我想我只需要使用js引擎.有没有?

javascript physics game-physics phaser-framework matterjs

14
推荐指数
1
解决办法
888
查看次数

如何为游戏制作"拦截导弹"?

我有一个我正在研究的游戏中有导弹的导弹.此刻他们只是转向他们的目标,这会产生一个相当愚蠢的结果,所有的导弹跟随目标.

我想创造一种更致命的导弹风格,它将瞄准目标"将会到达那里"的位置,我对如何做到这一点感到有些困惑和困惑.

我猜我将需要在未来的某个时刻确定我的目标(无论如何都是猜测),但我无法理解未来的发展方向.它需要基于导弹远离目标的距离,但目标也在移动.

我的导弹具有持续的推力,同时具有较弱的转向能力.希望是他们会快速而令人兴奋,但是像牛一样操纵(即,对于非HitchHiker球迷来说非常糟糕).

无论如何,Stack Overflow似乎是一个有趣的问题,可以帮助我解决,所以任何关于更好或"更有趣"的导弹的想法或建议都会感激不尽.

接下来将是AI躲避他们......

physics trigonometry

13
推荐指数
3
解决办法
7826
查看次数

JavaScript - 分离轴定理 - 碰撞工作,但没有响应?

所以,我正在尝试对我的SAT,Circle - Poly,Poly - Poly碰撞应用响应.我将这篇文章的代码移植到JavaScript:

http://rocketmandevelopment.com/blog/separation-of-axis-theorem-for-collision-detection/

现在,检测适用于所有类型,但响应失败并且以疯狂的速度和错误的角度,它不依赖于物体的质量(区域^ 2而不是质量)并且未应用角速度

JSFiddle(重力不适用于模拟,使用箭头键移动),JS的第一部分是Vectors,然后是Physics,然后是Main.

这是我对形状的定义:(必须为"JSFiddle"链接添加一些代码:P)

var Circle = function(body, c, r, cor, cof) {
    this.body = body // Static or dynamic
    this.c = c; // Center
    this.r = r; // Radius
    this.m = getCMass(r); // Mass = Area
    this.v = new Vector(); // Velocity
    this.cor = cor; // Coefficient of restitution
    this.cof = cof; // Coefficient of friction
    this.a = 0; // Angle
    this.av = 0; // Angular velocity
    this.type …
Run Code Online (Sandbox Code Playgroud)

javascript physics vector collision

13
推荐指数
1
解决办法
949
查看次数

我可以在一行上写多个 raku Type 智能匹配吗

我知道这行不通,因为我试过了:

if $r ~~ BearingTrue || CompassAdj || CourseAdj { nextsame };

但是 - 是否有一种简洁、简洁和易读的方式在一行上进行多个 Type智能匹配,而不必扩展到给定/何时或 if/else 结构?

physics raku

13
推荐指数
1
解决办法
123
查看次数

2D游戏物理?

任何人都可以指向我的2D游戏物理库,以便为2D平台/侧滚游戏编程引力,跳跃动作等吗?或者你能为马里奥,声波等侧卷轴推荐一些算法吗?

c++ physics

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

月球着陆器游戏需要什么数学?

我想建立一个游戏来学习cocos2d.Lunar lander是我脑海中的第一个练习.任何指针/源代码/所需的物理计算教程将不胜感激.谢谢!

iphone physics cocos2d-iphone

12
推荐指数
2
解决办法
3172
查看次数