3

OpenCascade を使用して、2 つの形状の衝突検出を行う方法は? いくつかの方法があるかもしれません。1 つは、交差を計算し、交差結果を確認することです。別の方法は、それらの最小距離を計算することです。どちらの方法が速いですか?または、より速い方法はありますか?どうもありがとう。

4

1 に答える 1

3

最小距離の計算は、brep データ構造に対する非常にコストのかかる操作です。OCC は、衝突検出の商用オプション [1] を提供しています。他のオプションとして、ODE または Bullit を使用して、BRep を表すメッシュで衝突検出を実行することが考えられます。これが、PythonOCC プロジェクトで採用しているアプローチです。[2] を参照してください。

[1] http://www.opencascade.org/support/products/coldet/

[2] http://www.pythonocc.org/resources/dyn/cad-and-rigid-body-simulation/

編集: 最近、私は開発中のオフライン ロボット工学ソフトウェア用に優れた FCL ライブラリ [3] を統合しました。優れている点は、縮退メッシュで問題なく動作し、メッシュ間の距離 (ODE では不可能) を非常に迅速に計算できることです。Python ( cython ) バインディングは進行中の作業 [4] ですが、安定しており、Python のオーバーヘッドはほとんど目立たないため、このアプローチをお勧めします。

[3] https://github.com/flexible-collision-library/fcl

[4] https://github.com/neka-nat/python-fcl

于 2013-01-31T15:53:17.223 に答える