如何在python中将两种类型合并到一个循环中
如果如何在python中将两种类型合并到一个循环中,python,append,tuples,Python,Append,Tuples,如果细分(坐标)是使用边界盒理论的细分代码,则给出两个结果-细分r,细分l 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]
细分(坐标)
是使用边界盒理论的细分代码,则给出两个结果-细分r,细分l
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()
,直到每个区域接近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
请不要重复执行
2**
。新的t
是旧的n
。新的n
总是t*2
。另外,保存细分(k)
的结果。然后只是在循环中追加。这就是你想要的吗?每个细分(k)
给我两个结果。我试图在细分(k)[0]
和细分(k)[1]
上重复细分,这将给我4个结果。第n个循环创建2n个结果。这就是为什么需要2。例如,该列表看起来像k
,subdivision(k)[0]
,subdivision(k)[1]
,subdivision(k)[0])[0]
,subdivision(k)[0],subdivision(k)[1])[1]
等等。因为我想保存所有细分结果,直到面积达到200,所以我在循环中添加了细分(k)
,但它不起作用,因为area()
的类型是numpy.float64,而细分(k)
的类型是tuple。