клип 2 или более треугольников с помощью круга с помощью matplotlib - PullRequest
0 голосов
/ 19 мая 2019

мой вопрос очень похож на этот вопрос !но я хочу использовать 1 круг, чтобы обрезать 2 треугольника или более.

, поэтому я попытался добавить 2 треугольника с add_patch, но он выдает синтаксическую ошибку:

patchpoly = ax.add_patch(polygon1, polygon2)

, поэтому я знаю, что могуне идите этим путем.

вот код:

fig, ax = plt.subplots()

polygon1 = plt.Polygon([(0,0.6),(1,2),(2,0.4)],color='g',alpha=0.25)
polygon2 = plt.Polygon([(0,0),(1,0.5),(0.5,1)],color='b',alpha=0.25)
circle = plt.Circle((0,0), 1.0, color='r', alpha=0.25)
patchpoly = ax.add_patch(polygon1)  # i know this line would be  meaningless
patchpoly = ax.add_patch(polygon2)

ax.add_patch(circle)
patchpoly.set_clip_path(circle)

и результат: https://imgur.com/a/jnVXUuE

1 Ответ

0 голосов
/ 19 мая 2019

Ну, ты почти там;просто дайте патчу polygon2 уникальное имя, то есть patchpoly2 = ax.add_patch(polygon2), а затем также дайте команду патчу «обрезаться» в конце круга с помощью patchpoly2.set_clip_path(circle)

...