0

私はjavascriptでMSペイントクローンを作成しようとしています。フィルバケットツールについて考えるまでは、すべてが完璧に見えました。私はprocessing.jsライブラリを使用しており、基本的には組み込みの形状(楕円、長方形、線)を使用して描画していました。私がしたことは、ユーザーが描画する各形状の「タイプ」を配列に格納し、それに応じてレンダリングすることでした。したがって、shape [i] == 1の場合、その線、shape [i] = 2、その楕円などになります。これは、形状が順番にレンダリングされるようにするためです。これが、他のすべての形状の上に描画される最後の形状です。

そして、どうやら、この方法では、バケツを埋めるツールを使用できません(おそらく、その方法がわかりません)。少し調べてみたところ、フラッドフィルアルゴリズムを使用する必要があることがわかりました。そして、アルゴリズムには、多くのキューやスタック、ノードなどを使用することが含まれます。そして、深く掘り下げて実際に実装することを考える前に、ここで行った「配列内のストア」​​の概念を廃止する必要があるかどうかを知りたいと思います。そして、ピクセルを「ノード」としてどのように正確に表すことができますか?フラッドフィルに関するウィキペディアのエントリによると、私は「ノード」を使用して多くのことを行っていたからです。アイデア/リソースはありますか?

4

1 に答える 1

2

解決しました。リストラは必要ありません。そして、ノードなどを使用する必要はありません。私がしなければならないのは、同じ色のピクセルをスタックにプッシュしてポップすることだけです。私はここで探しているものを正確に見つけました:

http://www.williammalone.com/articles/html5-canvas-javascript-paint-bucket-tool/

于 2013-02-20T06:07:59.753 に答える