网站制作全包多少钱,广东网页空间代理,微网站入口,家族公司怎么注册嘿大家好。我真的很难搞清楚这个逻辑#xff0c;希望你能帮我。在我继续之前#xff0c;我只想告诉你#xff0c;我是业余程序员#xff0c;也是一个初学者#xff0c;没有任何形式的正式计算机科学培训#xff0c;所以请容忍我。#xff1a;D另外#xff0c;我使用的是…嘿大家好。我真的很难搞清楚这个逻辑希望你能帮我。在我继续之前我只想告诉你我是业余程序员也是一个初学者没有任何形式的正式计算机科学培训所以请容忍我。D另外我使用的是Python但我可以使用Java或类似的工具。不管怎样我希望实现一个地区的增长在一个初步的Drawbot使用。这里有一篇关于区域增长的文章http://en.wikipedia.org/wiki/Region_growing按照我的设想绘图所基于的图像将满足以下条件在任意颜色深度下图像大小最多为3x3英寸图像将是白色背景上的黑色连续形状形状可以位于背景上的任何位置。我已经考虑过这个问题的下列解决办法。虽然有些工作在一定程度上但它们在性能或可行性上都有一些相当大的缺陷(至少在我看来是不可行的)。此外由于这是一个Drawbot这需要用一条连续的线来完成。但这并不意味着我不能回溯它只是消除了多个起点(种子)的可能性。考虑的方法随机行走我的第一直觉是用随机行走来解决这个问题。我想实现这一点的随机行走程序应该是这样的伪python。。。Cells To Visit Number of Black CellsCells Visited 0MarkColor redWhile Cells Visited Cells To Visit:if currentcell is black:Mark Current Cell As Visited #change pixel to redCells Visited 1neighbors Get_Adjacent_Cells() #returns cells either black or rednext cell random.choose(neighbors)currentCell next cell虽然我认为这是可行的但在我看来这是非常无效的并不能保证良好的结果但为了实际完成一些事情我可能最终尝试这个。。。我在伪代码中的逻辑是不是还模模糊糊地正确扫描模式在我看来这个方法是最容易实现的。我的想法是我可以在形状的一个极端选择一个起点(例如最左下点)。从那里开始它会向右移动只在x轴上移动直到它碰到一个白色像素。从这里开始它将在y轴上向上移动一个像素然后在x轴上向左移动直到达到一个白色像素。如果正上方的像素碰巧是白色则在x轴上回溯直到在其上方找到一个黑色像素。经进一步检验这种方法有一些主要缺点。当面对这样的形状时结果如下即使我告诉它过一段时间后开始清扫中腿仍然会被忽略。4/8连通邻域在我看来这种方法是最强大和最有效的但在这一点上我无法完全搞清楚我也无法考虑如何在不可能留下一些被忽视的领域的情况下实现它在每一个单元中我都会查看相邻的黑单元设计一些方法来排列我应该首先访问哪个单元访问所有的黑单元然后重复这个过程直到所有的单元都被覆盖。我在这里看到的问题首先是处理实现这一点所必需的数据结构而且仅仅是找出其背后的逻辑。这些是我能想到的最好的解决办法。谢谢你花时间读这篇文章我意识到它很长但我想我应该尽可能地把它说清楚。任何和所有的建议将非常感谢。。。谢谢编辑我也研究了迷宫生成和求解算法但不知道如何在这里实现。我对迷宫求解算法的理解是它们依赖于迷宫通道的宽度相等。我当然可能错了。