Как нарисовать форму объединения прямоугольников в python

Я использую Matplotlib и Python. Я хочу нарисовать объединение группы прямоугольников. Прямоугольники могут быть подключены или отключены. Я хочу также назначить другой цвет сторонам, совместно с другими группами, зная, что между группами нет перекрывающихся областей. Есть ли у вас какие-либо идеи?

Спасибо за вашу помощь.

Я добавил код для большей точности, я попытался создать коллекцию для каждой группы прямоугольников и дать им одинаковый цвет края, но как получить только одну форму (периметр группы прямоугольников)?

import numpy as np import matplotlib from matplotlib.patches import Rectangle from matplotlib.collections import PatchCollection import matplotlib.pyplot as plt fig=plt.figure() ax=fig.add_subplot(111) patches = [] ListCollections=[] while Cd1: while Cd2: patches += Rectangle((x,y), 400, 200) p = PatchCollection(patches, cmap=None) p.set_edgecolor('red') p.set_facecolor(None) ListCollections.append(p) patches =[] for l in ListCollections: ax.add_collection(p) plt.show() 

Посмотрите на Shapely. Существует явный пример объединения http://toblerity.github.com/shapely/manual.html#object.union .

Для построения геометрии Shapely вы также можете использовать https://pypi.python.org/pypi/descartes .

Наконец, если объединение должно быть выполнено с помощью художников matplotlib, я реализовал алгоритм обрезания Коэна-Сазерленда для путей только на днях – я считаю, что обрезание одного полигона другим – это то же самое, что и их объединение. Я был бы рад поделиться этим кодом, если это маршрут, по которому вы решили пойти (но почему бы вам, если у вас есть Shapely!).