Python:如何在给定坐标周围绘制圆圈

1 投票
1 回答
1901 浏览
提问于 2025-04-18 14:36

我现在想在一些坐标周围画出指定半径的圆圈,以便查看这些圆圈是否重叠。目前我有:

import matplotlib.pyplot as plt

for i in range(len(b)):
    for j in range(len(d)):

        circle1=plt.Circle((b[i,0], b[i,1]), 0.5, color='r', fill=False)
        circle1=plt.Circle((d[j,0], d[j,1]), 0.5, color='g', fill=False)
        fig = plt.gcf()
        fig.gca().add_artist(circle1)
        fig.gca().add_artist(circle2)
        fig.savefig('plotcircles.png')

b和d是每行有两个元素的列表。

谢谢!

1 个回答

0

你的圆形绘图代码会保存 len(d) x len(b) 个同名的图片,而这些图片中的圆圈会越来越多(因为你只是在 plt.gcf() 这一行创建了一个新图片)。如果你只是想生成很多个 png 图片,我建议你先画好两个圆,然后每次只改变它们的位置,利用它们的 center 属性。

不过,如果你只是想知道两个圆是否重叠,其实有更简单的方法。你需要知道圆心之间的距离(s)和两个圆的半径(r1r2)。如果 r1 + r2 小于 s,那么这两个圆就重叠了。用这三个数字来计算重叠的面积也很简单。

撰写回答