ユーザーが線や多角形などを描画できるCADアプリケーションがあります。
私が直面している厄介な問題の 1 つは、ユーザーの描画が非常に不正確になる可能性があることです。たとえば、ユーザーは、互いに接続された 2 つの四角形を描画したい場合があります。したがって、2 つの長方形によって共有される 1 つの線が存在するはずです。ただし、ユーザーが線を描く代わりに、互いに非常に接近している2 つの線を描くのは簡単です。非常に接近しているため、画面から見たときに同じ線であると誤解される可能性があります。少しズームインすると、そうではありません。
私のアプリケーションでは、ユーザーが線を適切に描画する必要があります (または、前処理で自動修正を実行できる必要があります)。そうしないと、内部アルゴリズム (それをThe Algorithmと呼びましょう) が入力を正しく処理できません。
この種の問題に対処するための最善の戦略は何ですか? ポイント座標をある程度の精度で丸めることを考えていますが、このアプローチの問題を正確に特定することはできませんが、これは正しい方法ではないと感じています。これにより、新しいセットが導入されます問題の。
編集:議論のために、スナップは利用可能なオプションではありません。ちなみに、あらゆる種類の「入力側」のガイダンスは利用できません。修正は、描画が終了したときにコードの前処理を介して行う必要がありますが、アルゴリズムに送信する直前です。
クレイジーな制限、あなたは言います。しかし、ユーザーは自分のアプリケーションで入力を作成することも、他の CAD ソフトウェアで入力を作成してから私のエンジンに送信して計算を行うこともできます。彼らが他の CAD ソフトウェアに入力する方法を制御することはできません。
編集 2:発生する「クラスター半径」をユーザーに指定させることができますが、重要な点は、前処理アルゴリズムが一貫しており、実際に新しい一連の問題が発生しないことを確認する必要があることです。
何か案が?