自分で線やパスを描くことについて質問があります。私は、UI といくつかの計算 (パスなど) に C#/WPF/Cudafy を組み合わせて使用しています。これで、「色」/値 (配列の長さ = 4 * 幅 * 結果画像の高さ) で埋められる Byte[] 配列ができました。
線の開始点と 1 つの終点 (開始点の間のどこか) を取得しました。最初に、これらの始点から終点までのいくつかのパスを計算してから、それらを配列に「描画」したいと考えています (これは、WriteableBitmap の構築に使用されます)。ただし、ポイント座標は「縮小された環境」に存在します(ダイクストラアルゴリズムを実行するために必要なパスの計算のため)。
私のパスは、ポイント座標(縮小サイズ)と「線幅」を保持するタプルによって定義されるようになりました。
一部のパスは「重複」する可能性があるため、結果の見栄えを良くするために次の手順を実行すると考えました。
- パスをマージします: そのために、1 つのパスを使用し、それを保持します。次に、2 番目のパスを取得して、パス ポイントが既に追加されているパスの近くにあるかどうかを確認します (近隣検索のように)。結局、パスが重なる部分の線幅を広げたいので(3番目のタプル値)、これを行いたいと思います。
- 終了したら、パスを「補間」したいと思います。すべてのパスにはすべての(サイズが縮小された)ピクセルにポイントがあるため、どうすればよいかわかりません。1つの可能性は、「線上にある」(そして実際には必要ない)パスのパス座標をすべてクリアしてから、ベジェ-補間のようなことを行うことです。しかし、これらの手順はすべてやり過ぎのように思えます。
これを行うためのより良い方法があるかもしれないと思いませんか? もしそうなら、あなたの考えを共有してください:)
助けてくれてありがとう!
現在の様子を示す画像へのリンクは次のとおりです: CPVL アプリケーション