MS paint clone - 如何存储形状

时间:2013-02-19 18:18:24

标签: paint flood-fill

我一直在尝试用javascript创建一个MS绘图克隆。在我考虑填充铲斗工具之前,一切看起来都很完美。我正在使用processing.js库,基本上我使用内置的形状(椭圆,矩形和线条)来绘制。我所做的是存储用户在数组中绘制的每个形状的“类型”并相应地渲染它们。因此,如果shape [i] == 1,那么它的一条线,shape [i] = 2,它是一个椭圆,依此类推。我做了这个,以便形状将按顺序呈现。这是最后绘制的形状绘制在所有其他形状之上。

显然,这种方法不会让我有一个填充桶工具(可能我不知道如何做到这一点)。我做了一点研究,发现我将不得不使用泛洪填充算法。并且该算法涉及使用大量队列和堆栈以及节点等。在我深入研究并考虑实际实现它之前,我想知道我是否必须取消我在这里做的“数组存储”概念。我怎样才能将像素表示为“节点”?因为根据维基百科关于洪水填充的条目,我会使用“节点”来做这么多事情。任何想法/资源?

1 个答案:

答案 0 :(得分:1)

解决。无需重组。而且我不必使用节点或任何东西。我所要做的就是将相同颜色的像素推入并弹出到堆栈中。我在这里找到了我正在寻找的东西:

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