C语言中是否有函数来计算度/弧度?

Ant*_*Tun 23 c

我需要在C程序中计算一个角度.这是我需要转换为C的JAVA方法.

private static double calculateDirection(double x, double y)
{
    return Math.toDegrees(Math.atan2(y, x));
}
Run Code Online (Sandbox Code Playgroud)

是否有像C语言中的toDegrees这样的函数,所以我不必自己编写所有代码?谢谢

Ema*_*ini 33

#include <math.h>

inline double to_degrees(double radians) {
    return radians * (180.0 / M_PI);
}
Run Code Online (Sandbox Code Playgroud)

  • 在所有包含的头之前,它可能有助于`#define _USE_MATH_DEFINES`. (4认同)
  • 某些math.h没有定义M_PI.添加`#ifndef M_PI #define M_PI 3.1415926535 #endif`来'修复'@AntunTun (2认同)

ant*_*ijn 7

不需要使用这种方法.转换为度数非常简单:

double radians = 2.0;
double degrees = radians * 180.0 / M_PI;
Run Code Online (Sandbox Code Playgroud)

如果你愿意,把它变成一个函数.

M_PI是*定义math.h的方式.


*在大多数编译器中.

  • 尽管如此,这仍然是最佳实践. (7认同)
  • @OliCharlesworth嗯,我不打算为他做所有的工作. (6认同)

Dem*_*tri 5

如果您只想复制/粘贴几个宏:

#include <math.h>
#define degToRad(angleInDegrees) ((angleInDegrees) * M_PI / 180.0)
#define radToDeg(angleInRadians) ((angleInRadians) * 180.0 / M_PI)
Run Code Online (Sandbox Code Playgroud)

如果您想省略#include,请将该行替换为从math.h标题中复制的此行:

#define M_PI   3.14159265358979323846264338327950288
Run Code Online (Sandbox Code Playgroud)