4

我试图将我使用 MIT AppInventor 制作的应用程序中的计算转换为使用 Java 的 Android。我面临的问题是 Kawa 中计算的三角部分正在使用 degress。我的问题是如何翻译这个计算到Java并得到相同的输出?

这就是我计算 Kawa 的方式,所有变量都是 double 类型:

 Tri 1=atan(Offset Depth/Offset Length)
 Mark 1=sqrt(Offset Length^2+Offset Depth^2)
 Tri 2=(180-Tri1)/2
 Mark 2=Duct Depth/(tan(Tri 2))

然后我尽力将它翻译成Java代码,变量也是如上所述的两倍,深度,长度和管道深度是用户输入值。

 tri1 = Math.atan(offsetDepth / offsetLength);
 marking1 = Math.sqrt(Math.pow(offsetLength,2) + Math.pow(offsetDepth,2));  
 tri2 = (180 - tri1) / 2;
 marking2 = ductDepth / Math.tan(tri2);

输入和输出的截图:

在此处输入图像描述

4

2 回答 2

19

您可以使用Math.toRadians()将度数转换为弧度。

于 2013-12-15T12:49:37.227 回答
9

您可以自己将角度转换为弧度。

据我们所知:

180 degrees = PI radians

所以:

1 degree = PI / 180 radians

所以无论你有 X 度,
它们都等于 (X * PI / 180) 弧度。

在 Java 中,你有

Math.PI

它定义了 PI 编号的值。

只需将您的 Java 代码更改为:

tri11 = Math.atan(1.0 * offsetDepth / offsetLength); // tri11 is radians
tri1 = tri11 * 180.0 / Math.PI; // tri1 is degrees
marking1 = Math.sqrt(Math.pow(1.0 * offsetLength,2) + Math.pow(1.0 * offsetDepth,2));  
tri2 = (180.0 - tri1) / 2.0; // tri2 is degrees
tri22 = tri2 * Math.PI / 180.0; // tri22 is radians
marking2 = 1.0 * ductDepth / Math.tan(tri22);
// output whatever you like now
于 2013-12-15T12:51:07.610 回答