как объединить два типа в один цикл в Python - PullRequest
0 голосов
/ 04 ноября 2019

Если 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

подраздел (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
...