处理360度范围的最佳方式

时间:2014-11-20 21:40:57

标签: c++ sql qt4

我需要在SQL数据库中选择0到359.9度的范围。

我的输入是中心角和范围的形式。 例如,中心= 100范围= 50将给出角度范围> 75°角度<125。然而,如果center = 0,则范围将是角度<25并且角度> 335。

因此,我当前的算法是这样的:

minangle = center-range/2
maxangle = center+range/2
if minangle<0, then minangle += 360
if maxangle>0, then maxangle -=360

然后在我的查询中

if minangle<maxangle, I query angle>minangle AND angle<maxangle
if minangle>maxangle, I query angle>minangle OR angle<maxangle  

这种方法似乎有点复杂。有更好的方法吗?

1 个答案:

答案 0 :(得分:0)

将角度范围更改为0-720。始终保持minAngle&lt; maxAngle。

if(min> gt max)    最大+ = 360;

minAngle = 50,maxAngle = 200; =&GT;确定

minAngle = 200,maxAngle = 50; =&GT; minAngle = 200,maxAngle = 360 + 50 = 410; =&GT;确定

虽然这会增加你的复杂性。