Мне нужно создать пустой массив, который будет указывать на заполненный многоугольник с 1 и снаружи 0.Прежде чем сказать, это дубликат вопроса.Я уже проверил много других вопросов и ответов.наконец получил этот для работы с одним из моих дел.но при изменении 4 вершин эта функция не работает.Я пытался изменить многие вещи в нем, и, кажется, ничего не работает, и я просто не могу понять, в чем разница и почему это не работает.
Сначала я работал с
c = [[47, 187], [55, 47], [184, 186], [186, 46]]
вВ первом случае у меня были некоторые ошибки в начале.порядок точек имеет значение.после добавления следующих кодов все работало нормально.здесь x
и y
- это половина от lenX
и lenY
.
t = []
for i in range(4):
for j in c:
if j[0]<x and j[1]<y:
t.append(j)
c.pop(c.index(j))
break
for j in c:
if j[0]<x and j[1]>y:
t.append(j)
c.pop(c.index(j))
break
for j in c:
if j[0]>x and j[1]>y:
t.append(j)
c.pop(c.index(j))
break
for j in c:
t.append(j)
c.pop(c.index(j))
break
c= np.array(t)
, называемая такой функцией, где lenX
и lenY
всегда около 200, а точки находятся в пределахrange.
pol = create_polygon([lenX,lenY],c)
во втором случае мои вершины
c = [[96, 208],[97, 91], [221, 206], [221, 85]]
, теперь это не работает, и я не знаю почему.пожалуйста, посмотрите, можете ли вы найти то, что я пропустил.