是否有任何库可以用来在 python 中进行简单的 3D 堆叠模拟? 为了简化问题,所有对象都是具有整数宽度/高度/深度/顶部/左侧/z-index 的盒子。 唯一需要模拟的是判断堆叠是否稳定。
我目前正在寻找一些物理引擎来完成这项工作。
vpython http://vpython.org/contents/doc.html
box2d http://box2d.org/about/ 它的稳定堆叠效果很好,只不过它是 2d 的。
来自 box2d 的稳定堆叠示例
编辑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/