擅长:python、mysql、java
<p>下面是我如何处理这样一个问题的例子:</p>
<p>假设您有一个正确的圆轮廓,只需遍历行并填充圆边缘之间的所有像素。你知道吗</p>
<pre><code>grid = [
[0,0,0,1,1,1,0,0,0],
[0,0,1,0,0,0,1,0,0],
[0,1,0,0,0,0,0,1,0],
[0,1,0,0,0,0,0,1,0],
[0,0,1,0,0,0,1,0,0],
[0,0,0,1,1,1,0,0,0],
]
def fill_circle(grid):
for r in grid: # For each row
j1 = None # left endpoint
j2 = None # right endpoint
for j, v in enumerate(r):
if v == 1 and j1 is None:
j1 = j
continue
if v == 1 and j2 is None:
j2 = j
break
else: # Did not find j1 AND j2
continue
for j in range(j1, j2): # Fill all points between
r[j] = 1
fill_circle(grid)
grid
[[0,0,0,1,1,1,0,0,0],
[0,0,1,1,1,1,1,0,0],
[0,1,1,1,1,1,1,1,0],
[0,1,1,1,1,1,1,1,0],
[0,0,1,1,1,1,1,0,0],
[0,0,0,1,1,1,0,0,0]]
</code></pre>