我在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
对象的所有属性,包括center
、radius
等。