gpt4 book ai didi

javascript - 像素网格上的递归填充函数?

转载 作者:行者123 更新时间:2023-12-01 02:15:53 26 4
gpt4 key购买 nike

我正在寻找一种方法来创建一个函数,该函数用给定的颜色填充像素网格。

如果用户单击一个像素,我的想法是检查该像素的每个邻居(上、下、左、右)是否与单击的像素颜色相同。对于每个邻居,如果颜色相同,则将其更改为黑色。如果相邻像素与单击的原始像素颜色不同,则将成为停止条件。

我的每个像素都位于一个数组中,每个像素对象的结构如下:

{
colour: 0xFFFFFF, // Or some other color
neighbours: {
l: PixelObj,
r: PixelObj,
u: PixelObj,
d: PixelObj
}
}

如果像素位于网格边缘 (40x40),则其相邻对象之一将为 null,而不是对另一个像素的引用。

有没有办法创建一个函数,在网格中的每个像素都知道其邻居属性的情况下,递归地填充颜色?

最佳答案

您所描述的算法的名称称为 flood fill algorithm

有很多关于 SO 的示例可供您使用,例如:

它甚至有自己的标签:flood-fill .

如果您尝试实现其中一种算法并遇到更具体的问题,那么您可以回来提出另一个问题。

关于javascript - 像素网格上的递归填充函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49503929/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com