0

我有一个三角形,知道两侧的长度(见图)并且需要知道图中显示的角度(红色已知,蓝色角度是我需要计算的)

在此处输入图像描述

我发现,Math.Tan 让我得到以弧度表示的角度,所以当我尝试这样做时:

alpha = Math.Tan((CA/AB));

结果我总是得到0。我的问题是 - 我怎么能得到这个角度,只知道这两个方面?

4

3 回答 3

6

尝试:

double alpha = Math.Atan2(CA, AB)

确保结果 ,alpha和其他变量是double

于 2013-03-08T21:54:59.363 回答
3

我的心理调试告诉我CAAB都是整数,要么int要么long。因此,结果也将是整数类型,根据需要截断任何十进制值。将至少其中一个值转换为浮点类型以获得浮点结果:

alpha = Math.Tan((CA/(double)AB));
于 2013-03-08T21:54:26.447 回答
1

您正在寻找的角度是 arctanjant 而不是 tanjant。

所以你应该使用 .Net 库的 arctanjant 函数。以下行提供了您需要的内容。

double alpha = Math.Atan ((double)CA/AB) * 180 / PI;

如您所知,PI 为 3.14。

于 2013-03-08T21:58:59.907 回答