我目前正在建立从一维索引网格数组中选择区域的基本方法。
到目前为止,我已经能够处理具有特定方向集和限制的线性选择,通过选择增加坐标(X为目标索引)可以很好地进行线性选择:
O O O O O O O O O O
O O O O 1 O O O O O
O O O O 1 O O O O O
O O O O 1 O O O O O
O O O O * 1 1 O O O
O O O 1 O O O O O O
O O 1 O O O O O O O
O 1 O O O O O O O O
问题是,当我尝试设计更复杂的形状时,我碰壁了,却不知道有什么算法可以使它变得更容易。我试图用这样的三角形或菱形进行选择,无法正确地将其关闭(获取每个X),而不会在整个地方造成混乱的循环和条件:
O O O O O O O O O O O O O O O O O O O O
O 1 X X 1 X X 1 O O O O O O 1 O O O O O
O O 1 X 1 X 1 O O O O O O X 1 X O O O O
O O O 1 1 1 O O O O O O X 1 1 1 X O O O
O O O O * O O O O O O 1 1 1 * 1 1 1 O O
O O O O O O O O O O O O X 1 1 1 X O O O
O O O O O O O O O O O O O X 1 X O O O O
O O O O O O O O O O O O O O 1 O O O O O
有没有一种数学方法可以使我免于为每种形状的每种尺寸创建新函数(像做过一样)?