發表文章

目前顯示的是 12月, 2008的文章

程式筆記: atan2 的角度值

圖片
我們可以寫一個簡單的程式,產生atan2的所取得的角度概略分佈。由於我目前所使用的是工具有Dev-C++4.9.9.0、BCB 6.0與Matlab 7.5,怕每個做的都不相同,所以我都得進行測試。 Matlab Matlab結果如圖上的第一個矩陣,得到的是有正角度與負角度的矩陣。由於概念上用0~360來表示較度會比較好懂,因此就將atan2所得到的負角度+360得到0~360尖的角度值,如圖方矩陣。 於Matlab用的程式碼 x=repmat([-2:2], [5,1]); y=repmat([2:-1:-2]',[1,5]); angle=atan2(y,x)/(2*pi)*360 neg=find(angle Borland C++ Builder與Dev C++ 基本上這兩個工具得到的結果都是相同的,但是BCB就是不一樣(汗) 用Dev C++獲得的結果就如同Matlab,只是有負的角度,需將小於零的角度+360。 但是,BCB就是不太一樣,中間數值為(0,0)的時候,BCB會跳出DOMAIN Error的例外,而最後產生出來的數值則是NaN,也就是不將atan2(0,0)視為0,這也就得讓我去作額外的判斷工作,實在麻煩。