1

ロボティクス プロジェクト用に独自の CSG クラスを実装しようとしています。3D ポイントを指定すると、ブール値を返す関数として各ソリッドを実装することを考えています。3D ポイントがソリッド内に含まれている場合、この関数は true を返します。このようにすることで、立体の和、積、引き算が簡単にできるようになりました。

これは、衝突検出などを実行するのに十分です。それ自体ですが、実際にソリッドをレンダリングしたいので、私の質問はこれです; 上記のブール関数を使用してソリッドをレンダリングする方法はありますか? 理想的には何が起こっているのかを正確に知りたいので、必要に応じてコードを合理化して追加できるようにしたいので、これを自分で実装できることを嬉しく思います。また、立体を別の方法で表現することで作業が簡単になる場合は、提案を受け付けています。

注目すべき興味深い点は、固体の重心などを導出できれば便利だということです。

前もって感謝します!リー。

4

2 に答える 2

2

Constructive Solid Geometry (CSG) を実装する一般的な方法は、ソリッドのモザイク化されたポリゴンで Binary Space Partitioning (BSP) ツリーを使用することです。CSG 演算 (和、積、減算) は、BSP ツリーに対して演算を実行することによって行われ、結果として別の BSP ツリーが生成されます。BSP の結果には、操作の結果であるポリゴンが含まれています。

あなたは C# で作業しているので、オープン ソースで無料で使用できるこのライブラリをチェックしてください。

https://github.com/johnmott59/CGSinCSharp

于 2016-09-13T20:07:04.303 に答える