2012-12-12 9 views
5

可能性の重複:
Rasterizing a 2D polygonは、効率的な標準アルゴリズムがその内側の領域を含むポリゴンがラスタにです

私はその内側の領域を含むポリゴンをラスタする必要が

(のすべてのタイルを決定ポリゴンの内側にあるグリッド)。現在、私は単純なBresenhamを使って境界タイルを決定していますが、ポリゴンの「内側」(これも凹であるかもしれません)をラスタライズするのに効率的な方法はありません。これまでの私のアプローチは、タイル範囲をポリゴンを含む矩形に限定し、ポリゴンワインディングアルゴリズムを使用して内側または外側のすべてのタイルの中心を決定することです。これは、すべてのタイルについてすべてのポリゴン境界セグメントをチェックすることを含むので、非効率的である。第1の視点から、より速いアプローチであることが間違いない。 sth。ラスター境界を使用して巻かれている。この問題に取り組む標準的なアルゴリズムはありますか、おそらくC++のライブラリ実装さえも対応していますか?

+1

ネットにはかなりのリソースがあります。ここで私はGoogleの検索を使用して見つけた最初の2つです:http://alienryderflex.com/polygon_fill/ http://ezekiel.vancouver.wsu.edu/~cs442/lectures/raster/polyfill/poly.pdf – NPE

+0

@Potatoswatter :リンクありがとう。私が言ったように、私は内臓も必要とし、巻いたルールを知っているので、重複ではないと思うが、三角形分割と三角形をラスタライズする方法があるかもしれない。 – Martin

+0

@NPE:クール、最初のリンクはまさに​​私が探していたものです。あなたが答えを出したらすぐにそれを受け入れることができます – Martin

答えて

6

ネット上でかなりの数のリソースは、たとえば、あります

+0

そのアルゴリズムは、座標が完全に軸平行な辺を持つポリゴンの一部では機能しません(走査線が水平の場合はy座標、垂直)。たとえば、TまたはПという文字を区切る軸平行線セグメントのポリゴンでは、これは失敗します。 – gvlasov

関連する問題