【问题标题】:how to do 3D stable stacking for rigid body in Python如何在 Python 中为刚体进行 3D 稳定堆叠
【发布时间】:2014-02-08 18:17:21
【问题描述】:

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

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

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

box2d http://box2d.org/about/ 除了 2d 之外,它的堆叠稳定性很好。

来自 box2d 的稳定堆叠示例

编辑1

我最终使用 Chrono:PyEngine。它非常易于使用,并且 python 绑定是最新的。我发现唯一难的是最新版本只支持python 3.X http://www.projectchrono.org/mediawiki/index.php/ChronoPyEngine:Introduction

EDIT2

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

【问题讨论】:

  • 如果您只需要确定堆叠的轴对齐框是否稳定,那么物理库就大材小用了,而且可能不会很健壮。
  • 它不需要非常健壮!只是不想重新发明轮子!
  • 并非所有的轮子都是一样的 :) 但说真的,3D 物理引擎非常复杂,并且充满了诸如数值问题和模拟不准确等令人讨厌的问题。我的建议仍然是“不要”。

标签: python simulation physics-engine


【解决方案1】:

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

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-08-06
    • 2013-04-11
    • 1970-01-01
    • 2019-06-06
    • 2022-01-20
    • 2011-01-25
    • 1970-01-01
    • 2021-07-22
    相关资源
    最近更新 更多