簡體   English   中英

處理360度范圍的最佳方式

[英]Best way to handle 360 degree range

我需要在SQL數據庫中選擇0到359.9度的范圍。

我的輸入是中心角和范圍的形式。 例如,center = 100 range = 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-720。 始終保持minAngle <maxAngle。

if(min> max)max + = 360;

minAngle = 50,maxAngle = 200; =>好的

minAngle = 200,maxAngle = 50; => minAngle = 200,maxAngle = 360 + 50 = 410; =>好的

雖然這會增加你的復雜性。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM