Matplotlib中圆形补丁的中心



我在Matplotlib中创建了一个Circle补丁数组。我需要得到一个这些圆块的中心列表,用于一些计算。

在圆圈补丁的文档页面上(参见本页的matplotlib.patches.Circle),似乎没有任何提取圆心的方法,如mycircle.get_center。他们有一个半径,但没有中心。有什么建议吗?

编辑:

下面是一些代码。基本上,我想做的是创建一个交互式应用程序,用户在其中用鼠标单击一些磁盘屏幕。放置这些磁盘的唯一限制是它们都应该是不相交的。因此,当用户尝试通过鼠标单击插入磁盘时,我想检查新磁盘是否与已输入的磁盘相交。

我将所有圆形补丁存储在一个名为 disk_arrangement 的数组中。当然,我可以创建一个单独的数组来记录中心,来完成我的工作,但这似乎很丑陋。这就是为什么我希望 Matplotlib 作为一种提取给定圆块中心的方法

def place_disk(event, disk_arrangement=[] ):
    def is_inside_an_existing_disk(center_x, center_y):
      if disk_arrangement != []:
        for existing_disk in disk_arrangement:
            if existing_disk.contains(event): #### How to do this????
               return True 
      return False
    if event.name     == 'button_press_event' and 
       event.dblclick == True                 and 
       event.xdata    != None                 and 
       event.ydata    != None                 and 
       is_inside_an_existing_disk(event.xdata,event.ydata) == False :  
              cursor_circle = mpl.patches.Circle((event.xdata,
                                                  event.ydata),
                                                  radius=0.3,
                                                  facecolor= 'green')
              disk_arrangement.append(cursor_circle)
              ax.add_patch(cursor_circle)
              fig.canvas.draw()

我在 Ubuntu 14.04 上使用 Python 2.7.11

尝试使用 center 属性,例如,对于初始化为以下内容的补丁:

from matplotlib.patches import Circle    
circ = Circle((1, 2), radius=1)
circ.center == (1,2) #should return True

要确定对象的所有属性,您可以使用dir,例如 dir(circ)给出了circ对象的所有属性,包括centerradius等。

最新更新