2017-05-24 15 views
0

フリーハンドの線、曲線、円または他のストロークをタッチスクリーン上に描画するとき、囲まれた領域がストローク内に形成されているかどうかを知るアルゴリズムが必要です。たとえば、小文字の「e」が描かれている場合は、その中に囲まれた領域がありますが、「m」、「w」などの文字には囲まれた領域がありません。囲まれた領域を認識するアルゴリズム

+0

実際には、シンボルの「囲まれた領域」を説明するのに「e」を使用しました。私が扱おうとしていたのは、それぞれが特別な意味を持つ、自分でデザインした一連のシンボルです。シンボルが描かれたら、その中に囲まれた領域があるかどうかをアルゴリズムが知りたがります。 – zhuhuren

+0

入力とは何ですか?パス上のいくつかのポイント?画像?後者の場合、実行可能なアルゴリズムを思いつくのはかなり難しいでしょう。 – maraca

+0

パス上のいくつかのポイント。 – zhuhuren

答えて

0
  1. は、既存の行のためには、画面上のピクセルを選ぶことができ、全体 領域が覆われるまで は、その行で停止し、すべての方向にそれを展開します。
  2. 画面の境界線を領域の境界線と見なさない場合: は、 の画面の境界線に当たるかどうかをチェックするだけで囲まれた領域かどうかを判断できます。
  3. 画面の境界線を領域の境界線と見なす場合: は囲まれた領域です。
  4. 今チェックした領域を引きます。新しいピクセルを選択します。ピクセルが残らなくなるまで繰り返します。
+0

私が対処したいのは、自分で設計した一連のシンボルです。一度シンボルが描かれると、その場で囲まれた領域があるかどうかをアルゴリズムが知りたがるので、アルゴリズムは非常に速くそれを伝えることができるはずです。また、時計回りか反時計回りかがわかるはずです。 – zhuhuren

+0

コメントには、入力は一連のパスで構成されていると述べました。どのようにすべてのパスから交差点を計算し、交点を持つすべてのパスをグラフにマージするのですか?次に、グラフアルゴリズムを使用してループを検出することができます。 – Shiro

+0

各シンボル(またはパス)の入力は一連のポイントです。 – zhuhuren

関連する問題