确定点击是否在圆形区域内
Determine if tap is within circular area
在我的应用程序中,我目前可以通过检查以下所有条件是否成立来确定用户的点击是否在矩形区域内:
- 手指X > 矩形X
- 手指Y > 矩形Y
- 手指 X < 矩形 X + 矩形 宽度
- 手指Y < 矩形Y + 矩形高度
但是,我现在必须确定用户是否在 圆形 区域内点击。目前我在屏幕上有一个圆形,并且只检查它的边界矩形,这有效但显然不是很好。
如有任何帮助,我们将不胜感激。
二维中的distance between two points定义为
dist = sqrt((x2-x1)^2 + (y2-y1)^2)
要检查您的点击点是否在圆内,将圆心设为 (x1,y1),将 'tap location' 设为 (x2,y2),然后检查是否
sqrt((x2-x1)^2 + (y2-y1)^2) < R
R 是你的圆的半径。
编辑:
正如 John 所提到的,从计算的角度来看,与 R^2 进行比较更有趣,以避免每次抽头的 sqrt。所以条件变成:
(x2-x1)^2 + (y2-y1)^2 < R^2
在我的应用程序中,我目前可以通过检查以下所有条件是否成立来确定用户的点击是否在矩形区域内:
- 手指X > 矩形X
- 手指Y > 矩形Y
- 手指 X < 矩形 X + 矩形 宽度
- 手指Y < 矩形Y + 矩形高度
但是,我现在必须确定用户是否在 圆形 区域内点击。目前我在屏幕上有一个圆形,并且只检查它的边界矩形,这有效但显然不是很好。
如有任何帮助,我们将不胜感激。
二维中的distance between two points定义为
dist = sqrt((x2-x1)^2 + (y2-y1)^2)
要检查您的点击点是否在圆内,将圆心设为 (x1,y1),将 'tap location' 设为 (x2,y2),然后检查是否
sqrt((x2-x1)^2 + (y2-y1)^2) < R
R 是你的圆的半径。
编辑:
正如 John 所提到的,从计算的角度来看,与 R^2 进行比较更有趣,以避免每次抽头的 sqrt。所以条件变成:
(x2-x1)^2 + (y2-y1)^2 < R^2