Javascript 确定矩阵中的缓存矩形

Javascript 确定矩阵中的缓存矩形,javascript,caching,math,matrix,bitmap,Javascript,Caching,Math,Matrix,Bitmap,给定一个二维稀疏矩阵,如下所示: . 2 3 . . . 2 3 . . . . . . . 在哪里。是一个空值 考虑到: 矩阵最初没有值,但定义了 列和行计数。列和行计数从未更改。 矩阵中的所有选择都是矩形的,选择后字段将填充,不应重新选择。 一旦填充,矩阵将只存储0到255之间的数字,但与示例不同,数字与索引没有任何关系。 因此,根据下面的3 x 5矩阵: . . . . . . . . . . . . . . . 从[1,0]中选择2 x 2: 从[2,1]中选择2 x 3: 有没

给定一个二维稀疏矩阵,如下所示:

. 2 3 . .
. 2 3 . .
. . . . .
在哪里。是一个空值

考虑到:

矩阵最初没有值,但定义了 列和行计数。列和行计数从未更改。 矩阵中的所有选择都是矩形的,选择后字段将填充,不应重新选择。 一旦填充,矩阵将只存储0到255之间的数字,但与示例不同,数字与索引没有任何关系。 因此,根据下面的3 x 5矩阵:

. . . . .
. . . . .  
. . . . .
从[1,0]中选择2 x 2:

从[2,1]中选择2 x 3:

有没有比循环给定矩形的所有值来测试它们更快的方法来确定是否已经填充了值

因此,如果我从[2,1]中选择1 x 2,我知道我可以只取片23而不迭代值


我知道迭代这个矩阵不是问题,但我打算在有30000个以上单元格的矩阵和有很多重叠的大选择矩形的矩阵上使用它。

你能在内存中保留一个矩形开始索引和大小的排序列表,并用这种方式计算出来吗?抱歉,如果你已经考虑过这个问题,但我在你的帖子中还不清楚。@chris考虑过这个问题后,请不要抱歉,提供一些上下文是很有用的。问题是,这是一个会发生很多次的过程。这个过程与鼠标移动有关,并且会有很多重叠的矩形轻微移动,因为可能的矩形比可能更昂贵的索引多得多。当一个矩形在每次改变时被其他矩形吸收时,计算也是如此。为了确保您只是想看看是否填充了一个单独的值?使用鼠标光标的索引访问矩阵以查看条目是否填充不是一个选项吗?@Igenchris Nope我正在查看大矩形中哪些索引没有填充,可能会将其拆分为较小的矩形。鼠标位置实际上与位置不匹配。@chris也许您可能在某些地方,但我可能会合并然后使用重新照亮矩形,以确保它们是最小的。
. 1 2 . .
. 1 2 . .
. . . . .
. 1 2 . .
. 1 2 3 4
. . 2 3 4