Geometry 确定抽头是否在圆形区域内

Geometry 确定抽头是否在圆形区域内,geometry,touch,area,touchscreen,ontouch,Geometry,Touch,Area,Touchscreen,Ontouch,在我的应用程序中,我目前可以通过检查以下所有条件是否为真来确定用户的点击是否在矩形区域内: 手指X>矩形X 手指Y>矩形Y 手指X

在我的应用程序中,我目前可以通过检查以下所有条件是否为真来确定用户的点击是否在矩形区域内:

  • 手指X>矩形X
  • 手指Y>矩形Y
  • 手指X<矩形X+矩形宽度
  • 手指Y<矩形Y+矩形高度
但是,我现在必须确定用户是否在圆形区域内点击。目前,我在屏幕上有一个圆形的形状,我只需要检查它的边框,这是可行的,但显然不是很好

任何帮助都将不胜感激。

二维中的定义为

 dist = sqrt((x2-x1)^2 + (y2-y1)^2)
要检查您的点击点是否在圆内,请将圆的中心视为(x1,y1),将“点击位置”视为(x2,y2),然后检查

sqrt((x2-x1)^2 + (y2-y1)^2) < R
sqrt((x2-x1)^2+(y2-y1)^2)
R是圆的半径

编辑:

正如John提到的,从计算的角度来看,比较vs R^2更有趣,以避免每次点击的sqrt。因此,条件变为:

(x2-x1)^2 + (y2-y1)^2 < R^2
(x2-x1)^2+(y2-y1)^2
是的,但是平方
R
比计算平方根便宜,因此通常执行测试
(x2-x1)^2+(y2-y1)^2)