我正在编写iPhone代码,模糊地识别滑动线是否趋近于直线。我获得了两个端点的方位角,并将其与0、90、180和270度进行比较,容忍度为正负10度。目前,我使用一堆if块来完成这个操作,这似乎非常笨拙。
如何编写一个函数,给定方位角0..360、容忍度百分比(比如20% = (-10°到+10°))和直线角度(如90度),返回方位角是否在容忍度范围内?
更新:也许我太具体了。我认为,一个好的通用函数,用于确定一个数字是否在另一个数字的百分比范围内,在许多领域都有用。
例如:数字swipeLength是否在maxSwipe的10%范围内?这将是有用的。
你理解我的意思了吗?
如何编写一个函数,给定方位角0..360、容忍度百分比(比如20% = (-10°到+10°))和直线角度(如90度),返回方位角是否在容忍度范围内?
更新:也许我太具体了。我认为,一个好的通用函数,用于确定一个数字是否在另一个数字的百分比范围内,在许多领域都有用。
例如:数字swipeLength是否在maxSwipe的10%范围内?这将是有用的。
BOOL isNumberWithinPercentOfNumber(float firstN, float percent, float secondN) {
// dunno how to calculate
}
BOOL result;
float swipeLength1 = 303;
float swipeLength2 = 310;
float tolerance = 10.0; // from -5% to 5%
float maxSwipe = 320.0;
result = isNumberWithinPercentOfNumber(swipeLength1, tolerance, maxSwipe);
// result = NO
result = isNumberWithinPercentOfNumber(swipeLength2, tolerance, maxSwipe);
// result = YES
你理解我的意思了吗?