#问题一
import math
from turtle import *
from matplotlib.pyplot import *
# print(radians(45))
def Ray(theta1, h_down, v,x_hypocenter):
theta1=math.radians(theta1)#将角度转化为弧度
n=len(h_down)#提取列表个数
sum_t=0#总时间
sum_x=0#最后位置
p=math.sin(theta1)/v[0]#snell比例系数
h_up=list(reversed(h_down))#向上厚度列表
h=h_down+h_up#总厚度列表
x_step=list(range(n))#水平方向步长
sin_i=list(range(n))#每一层的sin值
angle_i = list(range(n)) # 每一层的角度
x=list(range(2*n+1))#横坐标
y=list(range(2*n+1))#纵坐标
for i in range(n-1):
sin_i[i]=p*v[i]
angle_i[i]=math.asinh(sin_i[i])
if sin_i[i]>1 or sin_i[i]<0:#入射角过大、下层速度过大等
print('参数设置错误')
exit(1)
sum_t=2*(h_down[i]/(v[i]*(1-sin_i[i]**2)**0.5))+sum_
简单的地震射线追踪
最新推荐文章于 2024-10-02 10:53:34 发布