我想解決簡單的任務,但我沒有找到任何優雅的解決方案。兩個圓形扇區的交集
我基本上解決了兩個圓形扇區的交集。 每個扇區由(-pi,PI]範圍內2角(從ATAN2 FUNC)給出。 每個選擇佔據179.999最大角度。因此,它可以是告訴每兩個角度其中圓形扇區。
返回值應描述了基於相互交叉點上以下內容:
value <1 if one angle is contained by second one (value represents how much space occupy percentually)
value >1 if first angle (the dotted one) is outside the other one, value represents how much of dotted angle is out of the other one
基本情況和一些例子是在圖像波紋管
的問題是,有應處理的,我尋找一些優雅的方式來解決這麼多的情況下。
只有當它們位於單位圓的右側(cos> 0)時,我纔可以比較兩個角度,因爲在左側,數字上較大的角度在圖形上較低。我試圖用一些投影右半:
if(x not in <-pi/2, pi/2>)
{
c = getSign(x)*pi/2;
x = c - (x - c);
}
,但有一個問題,它佔用單位圓的兩半部分行業...
有這麼多的情況下...是否有人知道如何優雅地解決這個問題? (我使用C++,但任何提示或僞代碼是罰款)
這正是我需要的。非常感謝你的回答和你付出的努力。比你 – relaxxx
@relaxxx這是我第一次加入一個工業項目(20年前......)時記得的令人驚訝的具有挑戰性的「簡單」任務之一......);所以當我看到你的問題時,我覺得自己是一位專家,而且要把它做對,這也是一個挑戰。現在,代碼更加簡單,並且在一個部分位於另一個部分的同時給出了正確的交叉扇區。你更好地測試你的所有情況! :-) – coproc
你是對的,看起來很簡單但是...... :)再次,非常感謝你! – relaxxx