Python / Psychopy:检查点是否在圆内

史蒂夫

我想知道检查给定点(眼睛坐标)是否在特定区域(在这种情况下为圆形)内的最有效方法。

码:

win = visual.Window([600,600], allowGUI=False)

coordinate = [50,70] #example x and y coordinates 

shape = visual.Circle(win, radius=120, units='pix') #shape to check if coordinates are within it

if coordinate in shape:
    print "inside"
else:
    print "outside"

>>TypeError: argument of type 'Circle' is not iterable

我的x和y坐标对应于窗口上的一个点,我需要检查该点是否在半径为120像素的圆内。

谢谢,史蒂夫

迈克尔·麦克阿斯基尔

根据API,PsychoPy的ShapeStim类具有一种.contains()方法:http : //psychopy.org/api/visual/shapestim.html#psychopy.visual.ShapeStim.contains

因此,您的代码可以简单地是:

if shape.contains(coordinate):
    print 'inside'
else:
    print 'outside'

使用此方法的优势在于,它是一种通用解决方案(考虑了刺激顶点的形状),而不仅仅是检查距刺激中心的勾股距离(这仅是圆形的一种特殊情况)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章