2014-02-08 5 views
1

Есть ли какая-нибудь библиотека, которую я могу использовать для простого моделирования 3D-стекирования в python? Чтобы упростить задачу, все объекты представляют собой поле с целым числом width/height/depth/top/left/z-index. И единственное, что нужно смоделировать, - это определить, что укладка стабильна или нет.Как сделать стабильную трехмерную укладку для твердого тела в Python

В настоящее время я ищу физический движок для выполнения этой задачи.

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

Box2D http://box2d.org/about/ Он делает стабильной укладки хорошо, за исключением того, что 2d.

стабильно образец укладки От Box2D enter image description here

EDIT1

я, наконец, в конечном итоге с помощью 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

+0

Если все, что вам нужно, это определить, является ли стекирование выровненных по оси ящиков стабильными, библиотека физики переполнена и, вероятно, не будет очень надежной. – Thomas

+0

Не нужно быть очень надежным! Просто не хочу изобретать велосипед! – lucemia

+1

Не все колеса равны :) Но серьезно, двигатели 3D физики очень сложны и полны неприятных проблем, таких как числовые проблемы и неточности моделирования. Мой совет остается «не надо». – Thomas

ответ

2

Это один из тех вопросов, в котором нет удовлетворительного ответа. Но взгляните на это:

  • https://www.ibm.com/developerworks/library/os-physicsengines/.
  • pyODE (ODE экспортировано на python), но последнее - с 2010 года и поддерживает до python 2.6; сторона C++, по-видимому, активно поддерживается
  • newton, который имеет привязки python, но последняя версия (даже C++ backend) снова не обновляется с 4/2011;
  • пуля, которая активно поддерживаются на уровне C++, но питон привязки не обновлялись примерно через год и down't знает, как всеобъемлющие и стабильный
  • reactphysics3d является C++, но и активно поддерживается: необходимость создания питона привязок
  • опустошение: не бесплатно и не питон привязок, но, кажется, самый мощный

Если вы готовы учиться SWIG (www.swig.org), вы, вероятно, может создать свой собственный Python привязки для частей пули или PyODE или reactphysics3d, который вы хотите. Не знаю о Havoc.

 Смежные вопросы

  • Нет связанных вопросов^_^