2014-09-24 66 views
1

我有應當找出兩個弧度弧度有時翻轉/反轉

function mrad(rb,ra){return (rb+ra)/2;} 

但有時中間的功能,當我繪製在x和y與Math.sin和Math.cos兩個指定長度新座標出現在我想要的極地對立面上。例如

;如果我希望新的觀點有時候會下降,那麼有時他們會出現在左邊和右邊。 除此之外,座標是正確的!

這裏是我繪製新的X和Y

xnew=xold-(100)*Math.cos(radian); 
xnew=yold+(100)*Math.sin(radian); 

我猜測,如果弧度B(RB)比RA大,可能無所謂。我認爲,正在發生的事情是,我要完整的循環在這種情況下,而我有時應該做的,而不是像

function mrad(rb,ra){return (rb-ra)/2;} 

我的問題是

  1. 是我的假設是正確的?

  2. ,會是什麼情況,如何知道什麼時候做RB-RA VS RB + RA,或把它更好的,你怎麼知道,如果一個弧度指向上方或波紋管其他?

它應該是這個樣子

function mrad(rb,ra){return ((/*condition*/)?(rb-ra):(rb-ra))/2;} 

編輯

要找到我試圖表達不同的值,以找到弧度的範圍,但無法找到任何超過範圍對角線

http://jsfiddle.net/roLLqfs6/

另外定義的長度並不總是100,因爲它是寫在例子中

+0

這是一個編程問題? – 2014-09-24 15:56:12

+0

錯誤是的,有上面的代碼^ – 8DK 2014-09-24 15:57:00

+0

聽起來像一個數學問題... – 2014-09-24 15:57:20

回答

0

這真是一個數學問題。你需要確保你的角度在相同的範圍內(-pi ... pi0 ... 2.0 * pi),但即使如此,考慮到它們的平均值也不一定會找到你正在尋找的角度 - 你可能會認爲(以度爲單位,爲了簡單)你想要的10º的回答&20º應該是15º,但是對於175º和-175º你會期望什麼?我懷疑你會想要180º(因爲這是他們之間的小弧線),但你會得到0º。

因此,您需要測試差異,以確定它們相差180º(pi弧度),並相應地修改答案(如果不相等)。