2

特定の線でポリゴンを分割することを扱う多くの実装を見つけましたが、クワッド(4 つの頂点を持つ四角形)を分割するだけで済みます。

このタスクに最適化されたアルゴリズムはありますか? シンプルさは、パフォーマンスよりも重視されます。

4種類の交差点を絞り込みました:

隣接

線が一方の側に入り、隣接する側を通って出る場所。これにより、 3 つのポイントを持つ 1 つのポリゴンと5 つのポイント
を 持つ 1 つのポリゴンが生成されます。

隣接

反対

ラインが片側に入り、反対側から出る場所。これにより、4 つのポイントを持つ 1つのポリゴンと4 つのポイント
持つ 1 つのポリゴンが生成されます。

反対

対角線の反対

ラインが 1 つのコーナーに入り、反対側のコーナーを通って出る場所。これにより、3 つのポイントを持つ 1つのポリゴンと3 つのポイント
持つ 1 つのポリゴンが生成されます。

対角線の反対

斜め隣接

ラインが 1 つのコーナーに入り、隣接する側を通って出る場所。これにより、 3 つのポイントを持つ 1 つのポリゴンと4 つのポイント
を 持つ 1 つのポリゴンが生成されます。

斜め隣接

しかし、これまでのところ、優れた単純なアルゴリズムを思いつくことができませんでした.

ありがとう!

4

1 に答える 1

1

長方形のウィンドウで線を切り取るための効果的なアルゴリズムはたくさんあります。

私は目的のためにLiang-Barskiのものを使用しました(効果的な実装については、「外部リンク」セクションを確認してください)

于 2013-01-29T04:35:44.343 に答える