我有一个三角形,知道两边的长度(见图),需要知道图片中显示的角度(红色是已知的,蓝色角度是我需要计算的)
我发现,Math.Tan得到了以弧度表示的角度,所以当我尝试这样做时:
alpha = Math.Tan((CA/AB));
结果总是得到0。 我的问题是 - 我怎么能得到这个角度,只知道这两个方面?
答案 0 :(得分:6)
尝试:
double alpha = Math.Atan2(CA, AB)
确保结果alpha
和其他变量为double
答案 1 :(得分:3)
我的通灵调试告诉我,CA
和AB
都是整数,int
或long
。因此,结果也将是整数类型,根据需要截断任何十进制值。将至少一个值转换为浮点类型以获得浮点结果:
alpha = Math.Tan((CA/(double)AB));
答案 2 :(得分:1)
你正在寻找的角度是arctanjant而不是tanjant。
所以你应该使用.Net库的arctanjant函数。以下行给出了您的需求。
double alpha = Math.Atan ((double)CA/AB) * 180 / PI;
如你所知,PI为3.14。