我使用整数值(枚举)表示风向,范围从 0 代表北,到 15 代表北-北-西。
我需要检查给定的风向(0 到 15 之间的整数值)是否在一定范围内。我指定我的WindDirectionFrom
值首先顺时针移动WindDirectionTo
以指定允许的风向范围。
显然,如果WindDirectionFrom=0
和WindDirectionTo=4
(在 N 和 E 方向之间)且风向为 NE (2) 计算很简单
int currentWindDirection = 2;
bool inRange = (WindDirectionFrom <= currentWindDirection && currentWindDirection <= WindDirectionTo);
//(0 <= 2 && 2 <= 4) simple enough...
然而,对于另一种情况,比如WindDirectionFrom=15
,WindDirectionTo=4
并且风向再次为 NE (2),计算立即中断......
bool inRange = (WindDirectionFrom <= currentWindDirection && currentWindDirection <= WindDirectionTo);
//(15 <= 2 && 2 <= 4) oops :(
我敢肯定这不会太难,但我对这个有一个真正的心理障碍。