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)


注意axis是可选的,默认为1。“ value”是一个numpy数组,而不是离散值。

关于python - 如何 append 所有分割的多边形坐标?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/58688403/

10-11 04:05