【发布时间】:2015-04-16 21:16:54
【问题描述】:
我有一个基于约束构造随机图像的应用程序。随机选择不同颜色的像素并将其放置在满足所有约束的网格中。例如(简化),可能有一个约束,如果蓝色或绿色像素位于 (0,-1),红色像素位于 (-1,-1) 和 (-1, 0),则放置禁止白色像素。这些坐标是来自当前放置位置(即其邻域)的向量。
现在我将约束存储在一个数组中并循环遍历它们,检查每个约束是否适用。我必须对放置在网格中的每个像素执行此操作。因此,随着添加更多约束,性能会受到影响。此外,两个约束可能会发生冲突,但检查起来并不容易。
我认为图形类型的数据结构(树?)可能是一种存储所有约束的方法,这样我就可以从像素邻域中快速确定哪些(如果有的话)约束适用。但我不太清楚如何使这样的结构工作,因为单个坐标可以包含多种颜色,以及如何将一组坐标/颜色与一组禁止的像素颜色联系起来。有什么想法吗?
【问题讨论】:
标签: data-structures pattern-matching