使用Math类将余弦转换为度

时间:2014-03-06 00:30:11

标签: java math

我不知道我是否对正弦,余弦和切线有一个基本的误解,或者我对某些Math类方法有误解,或者我错过了其他的东西,但我有点困惑。

我有一个直角三角形ABC,B = 90度。 AB是垂直的,BC是平的,AC是斜边。 AB = 125和AC = 150的长度值。我想找到角度A的值。

enter image description here

我首先尝试找到余弦,然后我想将余弦转换为度数。

double AB = 125;
double AC = 150;


double angleA = Math.cos(AB / AC);
double angleADegrees = Math.toDegrees(angleA);
println(angleADegrees);

编写的程序返回57.295。如果我在我的计算器上尝试它,我得到一个不同的答案。如果我在计算器上计算找到余弦值= 125/150,我得到.8333。 Cos ^ -1(.83333)= 33.5573。奇怪的事情57 + 33 + 90 = 180.我的程序以某种方式确定了角度C而不是角度A的值。我计算余弦错误还是我误用了Math类的方法?我不知道为什么我的程序没有返回33,这就是我认为是角度A的值。

2 个答案:

答案 0 :(得分:4)

您可以通过将弧度乘以180/Math.PI将弧度转换为度数。此外,反余弦(或cos ^ -1,就像某些教科书所表示的那样)是Math.acos方法(a站立arc)。

从而

double AB = 125;
double AC = 150;

double angleA = Math.acos(AB / AC);
println(angleA*180.0d/Math.PI);

将解决问题。

如果您想要找到角度C,可以通过编码来计算:

double angleCDeg = 90.0d-angleA*180.0d/Math.PI;//angle in degrees.
double angleC = angleC*Math.PI/180.0d;//angle in radians.

答案 1 :(得分:1)

数学上:

cos A = AB/AC

so cos A = 125 / 150

==> 

A = cos ^-1 ( 125 /150)

所以来自(http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Math.html

double angleRad = Math.acos( AB / AC)

double angleDegrees  = angleRad * (180 / Math.PI)