gpt4 book ai didi

c# - 查找周长上的点以表示边界/形状

转载 作者:行者123 更新时间:2023-11-30 23:14:34 27 4
gpt4 key购买 nike

我有一个简单的二维网格,格式为 myGrid[x,y]

我正在尝试找到一种方法来找到围绕选定网格的周长,这样我就有了一个可供选择的形状。

这是我的意思的一个例子:

enter image description here

这里的想法是找到所有相关的“角”,也就是图像中周边的红点到一个列表中,这样我就可以从中创建一个二维网格。但我不知道最简单的方法来做到这一点。我想知道是否有一个简单的逻辑可以做到这一点?

最佳答案

假设你的形状是完整而坚实的,这里有一些想法。
首先,您当然可以通过最小/最大坐标限制搜索区域: enter image description here

然后我将通过使用以下标准遍历网格单元来找到所有的外角和内角:

  • 外角至少有两个空对角相邻单元格。
  • 内角只有一个相邻的单元格。

enter image description here

然后您可以在 2 级循环中遍历找到的角以找到形状周围的边界路线: enter image description here

这不是最有效的算法,但实现起来非常简单。

这是一个替代解决方案:

  1. 根据上述标准找到第一个角单元格。
  2. 沿着形状的边移动,直到到达下一个角。使用简单边单元格有两个相邻的空单元格和两个相邻的非空单元格这一事实。
  3. 重复 #2,直到到达 #1 处的拐角。

关于c# - 查找周长上的点以表示边界/形状,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42992006/

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