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()