我需要在C程序中計算一個角度。下面是JAVA的方法,我需要轉換爲C.C語言中是否有函數來計算度/弧度?
private static double calculateDirection(double x, double y)
{
return Math.toDegrees(Math.atan2(y, x));
}
是否有類似於C語言toDegrees的功能,所以我不必由我自己寫所有的代碼? 謝謝
我需要在C程序中計算一個角度。下面是JAVA的方法,我需要轉換爲C.C語言中是否有函數來計算度/弧度?
private static double calculateDirection(double x, double y)
{
return Math.toDegrees(Math.atan2(y, x));
}
是否有類似於C語言toDegrees的功能,所以我不必由我自己寫所有的代碼? 謝謝
#include <math.h>
inline double to_degrees(double radians) {
return radians * (180.0/M_PI);
}
我在此期間發現它,但謝謝! – 2013-02-17 11:57:41
¸雖然包含math.h,但是沒有找到M_PI?任何想法 – 2013-02-17 12:15:12
某些math.h未獲取M_PI定義。添加'#ifndef M_PI #define M_PI 3.1415926535#endif'到'fix'that @AntunTun – 2014-06-04 21:37:13
沒有必要使用這樣的方法。轉換爲度數非常簡單:
double radians = 2.0;
double degrees = radians * 180.0/M_PI;
如果需要,將其轉換爲函數。
M_PI
順便說一下在math.h
中定義*。
*在大多數編譯器中。
儘管如此,這仍然是最佳實踐。 – 2013-02-17 11:44:44
@OliCharlesworth嗯,我不會爲他做所有的工作。 – antonijn 2013-02-17 11:45:49
不,這很好;)我只是在爭辯「不需要使用方法」...... – 2013-02-17 11:46:25
如果您喜歡把剛纔複製/粘貼一對夫婦宏:
#include <math.h>
#define degToRad(angleInDegrees) ((angleInDegrees) * M_PI/180.0)
#define radToDeg(angleInRadians) ((angleInRadians) * 180.0/M_PI)
如果你想省略#include
,更換這裏面從math.h
頭複製該行:
#define M_PI 3.14159265358979323846264338327950288
我聽說C實現了基於y的符號的有符號劃分的atan。所以,雖然看起來微不足道,但並不需要聰明。謝謝 – 2013-02-17 12:07:57