python - 如何在Python中对刚体进行3D稳定堆叠

标签 python simulation physics-engine

是否有任何库可以用来在 python 中进行简单的 3D 堆叠模拟? 为了简化问题,所有对象都是具有整数宽度/高度/深度/顶部/左侧/z-index 的盒子。 唯一需要模拟的是判断堆叠是否稳定。

我目前正在寻找一些物理引擎来完成这项工作。

vpython http://vpython.org/contents/doc.html

box2d http://box2d.org/about/ 它的稳定堆叠效果很好,只不过它是 2d 的。

来自 box2d 的稳定堆叠示例 enter image description here

编辑1

我最终选择使用 Chrono:PyEngine。它真的很容易使用,并且 python 绑定(bind)是最新的。我发现唯一困难的是最新版本仅支持python 3.X http://www.projectchrono.org/mediawiki/index.php/ChronoPyEngine:Introduction

编辑2

我的示例代码,用于使用 Chrono:PyEngine 运行堆栈检查。 https://github.com/lucemia/box/blob/master/physical.py

最佳答案

这是没有真正令人满意的答案的问题之一。但看看这些:

  • https://www.ibm.com/developerworks/library/os-physicsengines/
  • pyODE(ODE 导出到 python),但最新版本是 2010 年的,最高支持 python 2.6; C++ 方面似乎得到了积极维护
  • newton 具有 python 绑定(bind),但最新版本(甚至 C++ 后端)自 4/2011 以来再次未更新;
  • bullet 在 C++ 级别得到积极维护,但 python 绑定(bind)大约一年没有更新,不知道有多全面和稳定
  • reactphysicals3d 是 C++,但积极维护:需要创建 python 绑定(bind)
  • havoc:不是免费的,也没有 python 绑定(bind),但似乎最强大

如果您愿意学习 SWIG (www.swig.org),您可能可以为您想要的 Bullet 或 PyODE 或 reactphysicals3d 部分创建自己的 Python 绑定(bind)。不知道浩劫。

关于python - 如何在Python中对刚体进行3D稳定堆叠,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21649918/

相关文章:

python - 如何在python中json序列化对象

r - 在 R 中模拟数据集以进行模型选择

MATLAB - 追逐曲线(捕食者/猎物)

c++ - 2D 独立游戏的最佳引擎是什么?

c# - Farseer物理质量/重量问题

python - 如何用pymunk实现n体模拟?

python - 使用 tail 和缓冲区获取文件中的最后 K 行

python - 使用 Python 进行日志记录。处理程序和控制台副本

simulation - 我将如何为足球管理模拟构建一个结果预测器?

python - 将 Google App Engine 实体 key 传递到网页以维护上下文是否安全?