我一直在尝试在 javascript 中创建一个 MS 绘画克隆。一切似乎都很完美,直到我考虑了填充桶工具。我使用的是 processing.js 库,基本上我使用的是内置的形状(椭圆、矩形和线)来绘制。我所做的是将用户绘制的每个形状的“类型”存储在一个数组中并相应地渲染它们。所以如果 shape[i]==1,那么它是一条线,shape[i]=2,它是一个椭圆等等。我这样做是为了按顺序呈现形状。即最后绘制的形状是在所有其他形状之上绘制的。
显然,这种方法不会让我有一个填充桶工具(可能是因为我不知道该怎么做)。我做了一些研究,发现我将不得不使用洪水填充算法。该算法涉及使用大量队列、堆栈和节点等。在我深入研究并考虑实际实现它之前,我想知道我是否必须取消我在这里所做的“存储在数组中”的概念。以及如何将像素表示为“节点”?因为根据洪水填充的维基百科条目,我会使用“节点”来做很多事情。任何想法/资源?