我正在使用一种网格,可以定义如下:
|0||1||2|
|3||4||5|
|6||7||8|
我的目标是通过 x 和 y 值(或列和行)定义一个区域。假设我有一个定义为
R = [0, 1, 4]
的区域,这意味着该区域由索引为 0、1 和 4 的网格方块定义。因此预期输出可以在数学上表示为:
i ∈ R: { (col_i ∈ [0, 1] ∧ row_i = 0) ∨(col_i = 1 and row_i = 0)}
但我不知道如何实现这一点,到目前为止,我所拥有的只是确定该区域不是矩形的可用性:
region_indices=[0, 1, 4]
grid_size=3 #3 col x 3 row
rows=[]
cols=[]
for i in range(len(region_indices)):
row=i // grid_size
col= i % grid_size
rows.append(row)
cols.append(col)
max_col=max(cols)
max_row=max(rows)
min_col=min(cols)
min_row=min(rows)
for row in range(min_row, max_row):
for col in range(min_col, max_col):
square_index=row*grid_size+col
if square_index in region_indices==False:
isnt_rectangle=True
我希望有人能帮我解决这个问题,即使我的问题没有完整的答案。提前致谢!