gpt4 book ai didi

java - 反正弦不会改变 Java 中变量的值

转载 作者:行者123 更新时间:2023-12-02 05:54:58 25 4
gpt4 key购买 nike

我查看了各种网站来尝试解决我的问题。我还尝试在 Java 中查找有关 trig 的任何 YT 或其他视频,但找不到任何内容。 (我是个菜鸟,所以我也不总是理解大多数网站引用的所有内容)。

无论如何,我正在尝试制作一个简单的程序来计算斯涅尔定律的部分内容(我意识到有些网站可以执行此操作)。但反正弦似乎根本不影响我的变量值

这是代码:

import java.util.Scanner;

public class trig_functions_test {
public static void main(String[] args) {
Scanner HumanInput = new Scanner (System.in);
double n1, n2, Oi, OR;
System.out.println("Enter the first medium's index of refraction.");
n1 = HumanInput.nextDouble();
System.out.println("Enter the second medium's index of refraction.");
n2 = HumanInput.nextDouble();
System.out.println("Enter the angle of incidence.");
Oi = HumanInput.nextDouble();
System.out.println("Enter the angle of refraction.");
OR = HumanInput.nextDouble();

//if angle of refraction is the missing variable
if (OR == 0) {
Oi = Math.toRadians(Oi);
OR = (n1*Math.sin(Oi)/n2);
OR = Math.toRadians(OR);
OR = Math.asin (OR);
OR = Math.toDegrees(OR);
System.out.println(OR);
}
}
}

当我调试程序时,我得到这个:

首先,这是正在运行的程序:

(0只是表示没有折射角)

这些是 if 语句中第二行计算后的结果(?):

“OR”转换为弧度后,“OR”的值为0.011364657670640462

然后,这里是有问题的部分,对反正弦部分进行求值,“OR”变为 0.011364*90231927541* (更改的部分在 * 之间指示) )

最后,“OR”再次转换为度数,在第二行(或多或少)“OR”之后,我恢复到我的值,然后等于0.6511*609374816383* (同样,更改的部分在 * 之间指示)。

最佳答案

您的问题源于此行:

OR = Math.toRadians(OR);       

当您进行此计算时,您已经得到了以弧度表示的答案:

OR = (n1*Math.sin(Oi)/n2);

当您再次将其转换为弧度时,您会扭曲结果。删除 OR = Math.toRadians(OR);,您的程序将按预期运行。

关于java - 反正弦不会改变 Java 中变量的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23188628/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com