我需要在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
这种方法似乎有点复杂。有更好的方法吗?
答案 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;确定
虽然这会增加你的复杂性。