Initial commit
This commit is contained in:
42
split17.py
Normal file
42
split17.py
Normal file
@@ -0,0 +1,42 @@
|
||||
import matplotlib.pyplot as plt
|
||||
import numpy as np
|
||||
|
||||
# 定义 x 的范围
|
||||
x = np.linspace(0, 3, 500)
|
||||
|
||||
# 初始化 y 为 0
|
||||
y = np.zeros_like(x)
|
||||
|
||||
# 定义Ω形状的关键参数
|
||||
r = 0.6 # 半圆半径
|
||||
xc = 1.5 # 圆心 x 坐标
|
||||
yc = 0.6 # 圆心 y 坐标(上移半圆)
|
||||
|
||||
# 定义中间部分的范围(圆弧范围)
|
||||
circle_mask = (x >= xc - r) & (x <= xc + r)
|
||||
x_circle = x[circle_mask]
|
||||
|
||||
# 计算圆弧顶部的 y 值
|
||||
y[circle_mask] = yc + np.sqrt(r**2 - (x_circle - xc)**2)
|
||||
|
||||
# 定义两侧曲线的范围
|
||||
left_curve_mask = (x >= 1) & (x < xc - r)
|
||||
right_curve_mask = (x > xc + r) & (x <= 2)
|
||||
|
||||
# 左侧曲线(底部向右偏移)
|
||||
x_left = x[left_curve_mask]
|
||||
x_shift = 0.2 # 底部向右偏移的幅度
|
||||
y[left_curve_mask] = (yc - r) * (1 - ((x_left - (1 + x_shift * (1 - (x_left - 1) / (xc - r - 1)))) / (xc - r - (1 + x_shift)))**2)
|
||||
|
||||
# 右侧曲线(保持不变)
|
||||
x_right = x[right_curve_mask]
|
||||
y[right_curve_mask] = (yc - r) * (1 - ((x_right - 2) / (xc + r - 2))**2)
|
||||
|
||||
# 绘制图形
|
||||
plt.plot(x, y, linewidth=2)
|
||||
plt.axhline(0, color='gray', linewidth=0.5, linestyle='--')
|
||||
plt.title('左侧底部向右偏移的Ω形状')
|
||||
plt.xlabel('X 轴')
|
||||
plt.ylabel('Y 轴')
|
||||
plt.axis('equal') # 确保 x 和 y 轴的比例相同
|
||||
plt.show()
|
||||
Reference in New Issue
Block a user