パスを構成するポイントの NSArray があります。それがいつ自己交差するかを検出できます。これが発生すると、パスを埋めようとします。
最初は CoreGraphics を使用しましたが、現在は openGl を使用して三角形の配列を描画しています。画像でわかるようにうまく機能しません。
「尻尾」を残して円形の領域だけを塗りつぶすにはどうすればよいですか? リバース フラッド フィルを考えていましたが、CG にはこのための API 関数がないと思います...
たぶん、実際にパスを描く代わりに、パスの直径を概算し、概算で円を描くことができます。
iPhoneでサークルジェスチャを検出するためのコードは次のとおりです 。http ://www.mobileorchard.com/iphone-circle-gesture-detection/
すべてのポイントを双方向リストに記録します。記入するときが来たら、リストを最初から見て、最後に最も近いポイントを見つけます。次に、そのポイントにラインし、逆の順序で各ポイントにラインし、リストの 2 番目のポイントで停止します。塗りつぶしは暗黙的にパスを閉じます。パスは中断した場所 (2 番目のポイント) から開始 (最初の) ポイントに戻ります。
これは私の頭のてっぺんから外れています。これについていくつかのバリエーションを試して、何が最適かを確認できます。各ノードで最も近い前のノードを記録する場合がありますが、これは多くのノードでコストがかかる可能性があります。