2017-03-17 58 views
0

這段代碼應該計算並返回一個複數的實數部分,幅度爲a,角度爲b。它給了我錯誤的數字。簡單座標轉換的問題

 x = (a*(cos(b*(180/pi)))); 

但是,這給了我正確的數字,如果角度以弧度給出。

x =(a *(cos(b)));

PI被定義爲const雙PI = 3.142

任何想法?我看不出爲什麼x應該是錯誤的,但在第二個例子中是正確的。

回答

1

您有向後轉換:在計算餘弦值之前,公式將b從弧度更改爲度數。但是你想從degress轉換爲弧度。正確的公式是

x = (a*(cos(b*(pi/180))); 

雖然可以使用更少的括號和使用更多的間距:

x = a * cos(b * pi/180); 
2

由於180度爲1個PI弧度。度數到弧度的公式應該是

弧度=(度/ 180)pi。

因此

x = (a*(cos((b/180)*pi)))); 
+0

謝謝。我知道我只是在做一些愚蠢的事情。 – balloony

1

您沒有使用式正確

這可以寫爲第一式應爲:

X =(A * COS((B * PI)/ 180));