简单坐标转换的问题

时间:2017-03-17 15:02:14

标签: math

这段代码应该计算并返回一个复数的实部,其幅度为a,角度为b。它给了我错误的数字。

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

但是,如果角度以弧度给出,则给出正确的数字。

  

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

pi定义为const double pi = 3.142

有什么想法?我不明白为什么x在第一个中应该是错误的但在第二个例子中是正确的。

3 个答案:

答案 0 :(得分:2)

180度是1 pi弧度。度数到弧度的公式应为

radian =(度/ 180)pi。

因此第一个公式应该是

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

答案 1 :(得分:1)

您有向后转换:在计算余弦之前,您的公式会将b从弧度更改为度数。但是你想要从degress转换为弧度。正确的公式是

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

虽然你可以使用更少的括号并使用更多的间距:

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

答案 2 :(得分:1)

您没有正确使用公式

这可以写成:

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