如何附加所有细分的多边形坐标?
How to append all subdivided polygon coordinates?
设A
为坐标集(如array([[ 10., 110.],[200., 90.],[210., 0.], [-10., 10.],[ 10., 110.]])
.
如果 subdivision(coordinate)
是除法代码,给出两个结果 - subdivisionR, subdivisionL
,那么 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]])
。
由于我想对多边形进行划分,直到所有细分的多边形都到达最接近200的区域并得到所有细分的坐标,所以我使用了以下代码;
n=1
t=0
r=0
k=A
while area(subdivision(k)[n-1])>200:
for i in range(t,n):
k.append(subdivision(k[i])[0])
k.append(subdivision(k[i])[1])
t=2**r
r=r+1
n=2**r
但是,我收到警告 - 'numpy.ndarray' object has no attribute 'append'
。
我该如何解决这个问题?
追加到 numpy 数组的语法与 python 列表的语法不同。您要使用:
numpy.append(array, value, axis)
所以像这样:
numpy.append(k, subdivision(k[i]), axis = 0)
注意轴是可选的,默认为 1。'value' 是一个 numpy 数组,而不是离散值。
设A
为坐标集(如array([[ 10., 110.],[200., 90.],[210., 0.], [-10., 10.],[ 10., 110.]])
.
如果 subdivision(coordinate)
是除法代码,给出两个结果 - subdivisionR, subdivisionL
,那么 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]])
。
由于我想对多边形进行划分,直到所有细分的多边形都到达最接近200的区域并得到所有细分的坐标,所以我使用了以下代码;
n=1
t=0
r=0
k=A
while area(subdivision(k)[n-1])>200:
for i in range(t,n):
k.append(subdivision(k[i])[0])
k.append(subdivision(k[i])[1])
t=2**r
r=r+1
n=2**r
但是,我收到警告 - 'numpy.ndarray' object has no attribute 'append'
。
我该如何解决这个问题?
追加到 numpy 数组的语法与 python 列表的语法不同。您要使用:
numpy.append(array, value, axis)
所以像这样:
numpy.append(k, subdivision(k[i]), axis = 0)
注意轴是可选的,默认为 1。'value' 是一个 numpy 数组,而不是离散值。