TurnModelOnGamma 函数说明
函数描述
TurnModelOnGamma 函数用于在“拍摄/潜水”模式下,围绕空穴中心以角度Γ旋转模型轮廓。该函数计算模型轮廓和肋骨的旋转后坐标。
参数说明
xs0 (float): 空穴中心的初始x偏移。
ys0 (float): 空穴中心的初始y偏移。
COS_G (float): 旋转角度Γ的余弦值。
SIN_G (float): 旋转角度Γ的正弦值。
Xmod (numpy.ndarray): 模型轮廓的初始x坐标数组。
Ymod (numpy.ndarray): 模型轮廓的初始y坐标数组。
Xrib (numpy.ndarray): 模型肋骨的初始x坐标数组。
Yrib (numpy.ndarray): 模型肋骨的初始y坐标数组。
Ncon (int): 模型锥段数量。
返回值
XGmod (numpy.ndarray): 旋转后的模型轮廓x坐标数组。
YGmod (numpy.ndarray): 旋转后的模型轮廓y坐标数组。
XGrib (numpy.ndarray): 旋转后的模型肋骨x坐标数组。
YGrib (numpy.ndarray): 旋转后的模型肋骨y坐标数组。
数学公式
旋转后的坐标(xt,yt)通过以下公式计算:
xt=xs0+x0⋅cos(Γ)+y0⋅sin(Γ)
yt=ys0−x0⋅sin(Γ)+y0⋅cos(Γ)
python代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66
| def TurnModelOnGamma(self): """ 在“拍摄/潜水”模式下,围绕空穴中心以角度 Gamma 旋转模型轮廓。
参数: xs0 (float): 空穴中心的初始x偏移。 ys0 (float): 空穴中心的初始y偏移。 COS_G (float): 旋转角度 Gamma 的余弦值。 SIN_G (float): 旋转角度 Gamma 的正弦值。 Xmod (numpy.ndarray): 模型轮廓的初始x坐标数组。 Ymod (numpy.ndarray): 模型轮廓的初始y坐标数组。 Xrib (numpy.ndarray): 模型肋骨的初始x坐标数组。 Yrib (numpy.ndarray): 模型肋骨的初始y坐标数组。 Ncon (int): 模型锥段数量。
返回: XGmod (numpy.ndarray): 旋转后的模型轮廓x坐标数组。 YGmod (numpy.ndarray): 旋转后的模型轮廓y坐标数组。 XGrib (numpy.ndarray): 旋转后的模型肋骨x坐标数组。 YGrib (numpy.ndarray): 旋转后的模型肋骨y坐标数组。 """ Ncon = self.Ncon COS_G = self.COS_G SIN_G = self.SIN_G xs0 = self.xs0 ys0 = self.ys0 Xmod = self.Xmod Ymod = self.Ymod Xrib = self.Xrib Yrib = self.Yrib
XGmod = np.zeros(2 * Ncon + 4) YGmod = np.zeros(2 * Ncon + 4)
XGrib = np.zeros(2 * (Ncon - 1)) YGrib = np.zeros(2 * (Ncon - 1)) for i in range(2 * Ncon + 4): XGmod[i] = xs0 + Xmod[i] * COS_G + Ymod[i] * SIN_G YGmod[i] = ys0 - Xmod[i] * SIN_G + Ymod[i] * COS_G
for i in range(2 * (Ncon - 1)): XGrib[i] = xs0 + Xrib[i] * COS_G + Yrib[i] * SIN_G YGrib[i] = ys0 - Xrib[i] * SIN_G + Yrib[i] * COS_G
self.XGmod = XGmod self.YGmod = YGmod self.XGrib = XGrib self.YGrib = YGrib
|