私はimage editor
(本当に趣味のようなものです)に取り組んでいますが、画像と変更の視覚的表現に少し問題があります。
MVC design pattern
プロジェクトは、(プロジェクトは実際には単純な画像エディターよりも少し複雑ですが、これは重要ではありません)に従い、編集には(board
「ピクセルの」マトリックス)をモデル部分として使用し、変更されたview panel
(その責任ボードの状態を視覚的に表現することです)
パネルを変更するとboard
(たとえば、ペンで 1 ピクセルをペイントする) invalidate
、パネル自体を完全に再ペイントする必要があります。(PC が 1 秒間に数回自動更新 (再描画) するという事実を考えると、CPU は、1 ピクセルだけを変更するたびにパネル全体を再描画することを気にしないと思います)
問題は、画像が点滅することです。ペンを速く動かすと、線が表示されず、dashed line
.
私の「再描画」アルゴリズムの複雑さはO(n^2)
.
ダブルバッファリングや不透明など、さまざまなスタイルで試しました...
誰でも、この問題を解決するために使用できるより良いアルゴリズムまたはより良い設計パターンを提案できます...