我不知道我是否对正弦,余弦和切线有一个基本的误解,或者我对某些Math类方法有误解,或者我错过了其他的东西,但我有点困惑。
我有一个直角三角形ABC,B = 90度。 AB是垂直的,BC是平的,AC是斜边。 AB = 125和AC = 150的长度值。我想找到角度A的值。
我首先尝试找到余弦,然后我想将余弦转换为度数。
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的值。
答案 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)