斯涅尔定律不起作用

Snell's Law not functioning

我正在编写一个程序来使用斯涅尔定律计算光折射,但是,当我 运行 程序打印 -0.7076118148 而不是正确的值 22

import numpy as np
theta_1 = 30
n1 = 1
n2 = 1.33
theta_2 = np.arcsin(n1 / n2 * np.sin(theta_1))
print(theta_2)

您使用的是度数而不是弧度。
你必须转换,例如像这样:

import numpy as np
theta_1 = 30;
n1 = 1
n2 = 1.33
theta_1_rad = np.radians(theta_1)
theta_2_rad = np.arcsin(n1 / n2 * np.sin(theta_1_rad))
theta_2 = np.degrees(theta_2_rad)
print(theta_2)

=> 22.082413194472252