Как создавать новые объекты под старыми?Python

Программы на Python
Anonymous
Как создавать новые объекты под старыми?

Сообщение Anonymous »

Формат входных данных [x1, y1, x2, y2,...]:
dresva = [0.09, 0.97, 0.15, 0.88, 0.03, 0.88, 0.09, 0.97]

graviy = [0.05, 0.98, 0.07, 0.98, 0.09, 0.97, 0.1, 0.95, 0.1, 0.93, 0.09, 0.91, 0.07, 0.9, 0.05, 0.9, 0.03, 0.91, 0.02, 0.93, 0.02, 0.95, 0.03, 0.97, 0.05, 0.98]

glina = [0.02, 0.9, 0.2, 0.98]

Задача — найти способ создания новых объектов под старыми в соответствии с порядком вызова функции создания. В данном случае мы начинаем с создания объекта дресва, затем объекта грави, который будет скрываться под объектом дресва. Затем создается объект глины, и соответственно этот объект скрывается под первым и вторым объектами.
Желаемые выходные данные — координаты всех линий для рисования рисунка
Изображение

Часть программы, которую @Timeless написал работает. Но мой набор данных более сложен. В моем случае необходимо улучшенное решение.
obj_1 = [[0.09, 0.98, 0.13, 0.98, 0.17, 0.97, 0.2, 0.94, 0.2, 0.91, 0.17, 0.88, 0.13, 0.87, 0.09, 0.87, 0.05, 0.88, 0.02, 0.91, 0.02, 0.94, 0.05, 0.97, 0.09, 0.98]]
obj_2 = [[0.1, 0.77, 0.2, 1.07]]

def create_lines(coords):
return unary_union(
[
(
Polygon(ls) if (
ls := LineString(batched(coo, 2))
).is_ring else ls
) for coo in coords
]
)

lines1, lines2 = map(create_lines, [obj_1, obj_2])

fig, ax = plt.subplots(figsize=(4, 7))

plot_line(lines2.difference(lines1), color="w", add_points=False, ax=ax)
plot_line(lines1.exterior, color="w", lw=2, add_points=False, ax=ax)

ax.set(facecolor="#242c34", xticks=[], yticks=[])

plt.show()


Подробнее здесь: https://stackoverflow.com/questions/783 ... r-old-ones

Вернуться в «Python»