在python中如何将两种类型合并到一个循环中

2024-06-16 19:20:14 发布

您现在位置:Python中文网/ 问答频道 /正文

如果subdivision(coordinate)是一个使用边界盒理论的除法码,则给出两个结果subdivisionR, subdivisionL

A = array([[ 10., 110.],[200.,  90.],[210.,   0.], [-10.,  10.],[ 10., 110.]])
subdivision(A) = array([[ 10., 110.],[110.0, 99.47],[110.0, 4.54],[-10., 10.],[ 10., 110.]]), 
                 array([[110.0, 99.47],[200.,90.],[210., 0.],[110.0, 4.54],[110.0, 99.47]])
area(A) = 19550.0

subdivision(A)

因为我想对所有细分的多边形重复subdivision(),直到每个区域接近200,所以我编写了下面的代码。但是,area()的元组索引是单个整数,subdivision()的元组索引是坐标数组。如果我想附加所有细分的多边形,直到每个区域在坐标列表中达到200,我如何修复下面的代码

n=1
t=0
r=0
k=A

while area(subdivision(k)[n-1])>200:
    for i in range(t,n):
        np.append(k[0],subdivision(k)[0])[i]
        np.append(k[1],subdivision(k)[1])[i]
    t=2**r
    r=r+1
    n=2**r

Tags: 代码区域coordinatenparea理论多边形array