通过最大和最小 x 和 y 值定义网格中的非矩形区域

问题描述 投票:0回答:0

我正在使用一种网格,可以定义如下:

|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

我希望有人能帮我解决这个问题,即使我的问题没有完整的答案。提前致谢!

python matrix grid plane
© www.soinside.com 2019 - 2024. All rights reserved.