ノードグラフとエッジグラフを描画できるシステムに取り組んでいます。私はJavaキャンバスを使用しているので、ユーザーがプログラムに必要なものをすべてフリーハンドで描くことができます。これから取得した点の配列リストをチェックして、線が円または線に近いかどうかを確認できるアルゴリズムはありますか?現在、円を分類するために、(それ自体以外の)ポイントが同じポイントに等しいかどうかをチェックしています。円を検出するより良い方法があると確信しています。何か案は?
前もって感謝します。
一般的なヒント-個々の点の代わりに、分類にベクトルと角度を使用します。これは、多くのインタラクティブなテキスト認識システムの基礎となる手法です。
あなたの場合、より高い確率で閉じた数字は円です。
したがって、ユーザーの連続的な描画移動を追跡できる場合は、描画移動の各ベクトルをスタックにプッシュするだけです。
その後、必要なのは、スタックからのベクトル間の角度の合計を計算することだけです(角度の符号は、擬スカラー積の符号に依存することに注意してください)。合計がほぼpi
-つまり、その数字が円である場合、それ以外の場合-線
連続的な描画移動を追跡するためのPSのヒント-連続したドラッグとクリックの間の遅延を計算するだけです