确定水龙头是否在圆形区域内

时间:2015-04-10 21:06:06

标签: geometry touch area touchscreen ontouch

在我的应用程序中,我现在能够通过检查以下所有条件是否真实来确定用户的水龙头是否在矩形区域内:

  • 手指 X >矩形 X
  • 手指 Y >矩形 Y
  • 手指 X <矩形 X +矩形宽度
  • 手指 Y <矩形 Y +矩形高度

但是,我现在必须确定用户是否在循环区域内轻敲。目前我在屏幕上有一个圆形的形状,只是检查它的边界矩形,这有效,但显然不是很好。

任何帮助都将不胜感激。

1 个答案:

答案 0 :(得分:2)

二维distance between two points定义为

 dist = sqrt((x2-x1)^2 + (y2-y1)^2)

要检查您的分接点是否在圆圈内,请将圆圈的中心设为(x1,y1),将“分接位置”设为(x2,y2),然后检查是否

sqrt((x2-x1)^2 + (y2-y1)^2) < R

R是圆的半径。

修改

正如约翰所提到的,从计算的角度来看,与R ^ 2进行比较更有意思,以避免每次点击的sqrt。因此条件变为:

(x2-x1)^2 + (y2-y1)^2 < R^2