0

ユーザーが描画している線のすべてのピクセルを配列に入れようとしています。

後でこの線の分析を試みるので、ピクセルを見逃さないことが非常に重要です。私が現在使用しているコードでは、かなりの数のピクセルが欠落しています。問題は、グラフィックスが個々のピクセルではなく線を作成する方法にあるはずです。image1Pixel設定されたピクセルは配列に保存されます。これがmyMouseDragPaint、行を配列に保存する関数です。ピクセルを見逃さないようにこれを変更する方法を誰かが知っていますか?この質問に関する追加情報が必要な場合は、遠慮なくお問い合わせください。

ありがとうございました、

ミザ

4

1 に答える 1

1

コードには線の頂点のみを保存しており、それらの間のすべてのピクセルが欠落しています。

image1Pixel[currX][currY] = 1; // line vertex
G.drawLine(prevX, prevY, currX, currY); // this draws a whole line, no just two vertex points

次のいずれかを行う必要があります。

  • その線上のすべてのピクセルを補間します。たとえば、人気のあるアルゴリズムはブレゼンハムのアルゴリズムです。
  • または画像を取得し、そこから直接ピクセルカラーを読み取ります

また、線は単一のピクセルをカバーしないことに注意してください(正確に垂直または水平のピクセルを除く)。したがって、グラフィカルライブラリの後に数学の描画を繰り返さないため、2番目のオプションの方が適しています。

于 2012-05-09T11:17:43.340 に答える