前言

花时间把之前的函数完善了一下,但是也还是剩了很多没有弄,电脑也卡,运行一次需要几十秒,调试起来不方便,deepseek也带不动,分批次执行一样的命令也不是所有都可以生成,而且合并起来也比较麻烦,后续采用了变量名的替换,使用deepseek生成的话还产生了多余的线条,用AI处理不了,还是采用二分法人工进行的定位,只能说又浪费了一天的时间 -_-。

使用Python进行函数作画-CSDN博客

数学魔法!!980个初等函数画芙莉莲&勇者_哔哩哔哩_bilibili

芙莉莲&勇者 | Desmos

如果是直接丢给deepseek,就会将芙莉莲绘制成下面这个样子。

import numpy as np
import matplotlib
matplotlib.use('TkAgg')  # 新增这行代码
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse, Arc, Polygon, Circle, Rectangle

# 设置中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']  # 用黑体显示中文
plt.rcParams['axes.unicode_minus'] = False  # 正常显示负号

# 创建图形和坐标轴
fig, ax = plt.subplots(figsize=(10, 12))
ax.set_xlim(-10, 10)
ax.set_ylim(-15, 15)
ax.set_aspect('equal')
ax.axis('off')  # 隐藏坐标轴
ax.set_facecolor('#f0f8ff')  # 设置背景色

# 绘制头部和头发
head = Ellipse((0, 5), 5, 6, angle=0, facecolor='#f9f3e9', edgecolor='black', linewidth=1.5)
ax.add_patch(head)

# 绘制长耳朵
left_ear = Ellipse((-1.7, 6.5), 1.0, 3.0, angle=30, facecolor='#f9f3e9', edgecolor='black', linewidth=1.5)
right_ear = Ellipse((1.7, 6.5), 1.0, 3.0, angle=-30, facecolor='#f9f3e9', edgecolor='black', linewidth=1.5)
ax.add_patch(left_ear)
ax.add_patch(right_ear)

# 绘制长头发
hair = Polygon(np.array([(-2.5, 5), (-4, 2), (-4, -4), (4, -4), (4, 2), (2.5, 5)]),
              facecolor='#e6e6fa', edgecolor='black', linewidth=1.5)
ax.add_patch(hair)

# 绘制刘海
bangs = Polygon(np.array([(-1.5, 6), (-2.5, 4), (-1, 4), (0, 6), (1, 4), (2.5, 4), (1.5, 6)]),
               facecolor='#e6e6fa', edgecolor='black', linewidth=1.5)
ax.add_patch(bangs)

# 绘制身体
body = Rectangle((-2, -6), 4, 8, facecolor='#d8bfd8', edgecolor='black', linewidth=1.5)
ax.add_patch(body)

# 绘制披风
cloak = Polygon(np.array([(-4, -4), (-6, -10), (6, -10), (4, -4)]),
               facecolor='#9370db', edgecolor='black', linewidth=1.5)
ax.add_patch(cloak)

# 绘制手臂
left_arm = Rectangle((-4, -8), 2, 1.5, facecolor='#f9f3e9', edgecolor='black', linewidth=1.5)
right_arm = Rectangle((2, -8), 2, 1.5, facecolor='#f9f3e9', edgecolor='black', linewidth=1.5)
ax.add_patch(left_arm)
ax.add_patch(right_arm)

# 绘制法杖
staff = Rectangle((3.5, -14), 0.5, 15, facecolor='#8b4513', edgecolor='black', linewidth=1.5)
ax.add_patch(staff)
staff_head = Ellipse((3.75, 0.5), 3, 3, angle=0, facecolor='#ffd700', edgecolor='black', linewidth=1.5)
ax.add_patch(staff_head)

# 绘制面部特征 - 眼睛
left_eye = Ellipse((-1, 5.5), 0.8, 1.2, angle=0, facecolor='white', edgecolor='black', linewidth=1)
right_eye = Ellipse((1, 5.5), 0.8, 1.2, angle=0, facecolor='white', edgecolor='black', linewidth=1)
ax.add_patch(left_eye)
ax.add_patch(right_eye)

left_pupil = Circle((-1, 5.5), 0.4, facecolor='black')
right_pupil = Circle((1, 5.5), 0.4, facecolor='black')
ax.add_patch(left_pupil)
ax.add_patch(right_pupil)

# 绘制嘴
mouth = Arc((0, 4), 1.5, 1.0, theta1=0, theta2=180, edgecolor='black', linewidth=1.5)
ax.add_patch(mouth)

# 绘制魔法效果
magic_circle = Circle((0, 0), 4, facecolor='none', edgecolor='#1e90ff', linewidth=2, linestyle='--', alpha=0.7)
ax.add_patch(magic_circle)

magic_particles = []
for i in range(8):
    angle = i * np.pi/4
    x = 4 * np.cos(angle)
    y = 4 * np.sin(angle)
    particle = Circle((x, y), 0.4, facecolor='#00bfff', alpha=0.8)
    magic_particles.append(particle)
    ax.add_patch(particle)

# 添加文字标题
plt.text(0, 13, 'Frieren - 葬送的芙莉莲',
         fontsize=20, fontweight='bold',
         ha='center', color='#4b0082',
         fontfamily='sans-serif')

plt.tight_layout()
plt.savefig('芙莉莲.png', dpi=300, bbox_inches='tight')


# 添加窗口居中代码 -------------------------------------------
# 修改后的居中函数
def center_figure():
    try:
        # 获取当前窗口管理器
        manager = plt.get_current_fig_manager()
        if hasattr(manager, 'window'):
            window = manager.window

            # 通过tkinter方法获取屏幕尺寸
            screen_width = window.winfo_screenwidth()
            screen_height = window.winfo_screenheight()

            # 获取窗口实际尺寸(需要先更新界面)
            window.update_idletasks()
            window_width = window.winfo_width()
            window_height = window.winfo_height()

            # 计算居中坐标
            x = (screen_width - window_width) // 2
            y = (screen_height - window_height) // 2

            # 设置窗口位置
            window.geometry(f"+{x}+{y}")
    except Exception as e:
        print("居中失败:", str(e))


# 修改调用方式(移除线程调用,改用Tk事件循环)
plt.show(block=False)
plt.gcf().canvas.manager.window.after(500, center_figure)  # Tk原生延迟
plt.show()

代码

函数放在之前的博客上面了,这里只展示新代码。

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.patches import Ellipse

#封奚泽优
# 设置图形大小
plt.figure(figsize=(12, 10))

# 1. y = -0.35*(x+3.1)**2 + 4.4 for -3.64 < x < -3.1
x1 = np.linspace(-3.64, -3.1, 100)
y1 = -0.35 * (x1 + 3.1) ** 2 + 4.4
plt.plot(x1, y1, 'k')

# 2. y = -0.84*(x+3.1)**2 + 4.4 for -3.1 < x < -2.35
x2 = np.linspace(-3.1, -2.35, 100)
y2 = -0.84 * (x2 + 3.1) ** 2 + 4.4
plt.plot(x2, y2, 'k')

# 3. (y-3.66)**2 = -0.76*(x+2.257) for 3.46 < y < 3.92
y3 = np.linspace(3.46, 3.92, 100)
x3 = -2.257 - (y3 - 3.66) ** 2 / 0.76
plt.plot(x3, y3, 'k')

# 4. (y-3.5)**2 = -0.7*(x+2.315) for 3.157 < y < 3.59
y4 = np.linspace(3.157, 3.59, 100)
x4 = -2.315 - (y4 - 3.5) ** 2 / 0.7
plt.plot(x4, y4, 'k')

# 5. y = -8.7*(x+2.3)**2 + 3.63 for -2.25 < x < -2.149
x5 = np.linspace(-2.25, -2.149, 100)
y5 = -8.7 * (x5 + 2.3) ** 2 + 3.63
plt.plot(x5, y5, 'k')

# 6. y = -25*(x+2.007) for 2.93 < y < 3.43
y6 = np.linspace(2.93, 3.43, 100)
x6 = -2.007 - y6 / 25
plt.plot(x6, y6, 'k')

# 7. y = -2.5*(x+0.95) for -2.185 < x < -2.125
x7 = np.linspace(-2.185, -2.125, 100)
y7 = -2.5 * (x7 + 0.95)
plt.plot(x7, y7, 'k')

# 8. y = 2*x + 7.47 for 2.91 < y < 3.09
y8 = np.linspace(2.91, 3.09, 100)
x8 = (y8 - 7.47) / 2
plt.plot(x8, y8, 'k')

# 9. (y-2.7)**2 = x + 2.32 for 2.654 < y < 2.907
y9 = np.linspace(2.654, 2.907, 100)
x9 = (y9 - 2.7) ** 2 - 2.32
plt.plot(x9, y9, 'k')

# 10. (y-3)**2 = x + 2.44 for 2.652 < y < 2.81
y10 = np.linspace(2.652, 2.81, 100)
x10 = (y10 - 3) ** 2 - 2.44
plt.plot(x10, y10, 'k')

# 11. (y-3)**2 = 0.5*(x+2.414) for 2.886 < y < 3.037
y11 = np.linspace(2.886, 3.037, 100)
x11 = (y11 - 3) ** 2 / 0.5 - 2.414
plt.plot(x11, y11, 'k')

# 12. y = 0.9*x + 5.214 for -2.48 < x < -2.41
x12 = np.linspace(-2.48, -2.41, 100)
y12 = 0.9 * x12 + 5.214
plt.plot(x12, y12, 'k')

# 13. (y-3.06)**2 = 0.35*(x+2.51) for 2.86 < y < 3.157
y13 = np.linspace(2.86, 3.157, 100)
x13 = (y13 - 3.06) ** 2 / 0.35 - 2.51
plt.plot(x13, y13, 'k')

# 14. (y-2.84)**2 = -0.07*(x+2.39) for 2.809 < y < 2.86
y14 = np.linspace(2.809, 2.86, 100)
x14 = -2.39 - (y14 - 2.84) ** 2 / 0.07
plt.plot(x14, y14, 'k')

# 15. y = 0.55*x + 4.13 for -2.5735 < x < -2.403
x15 = np.linspace(-2.5735, -2.403, 100)
y15 = 0.55 * x15 + 4.13
plt.plot(x15, y15, 'k')

# 16. y = 16*(x+2.64)**2 + 2.63 for -2.654 < x < -2.565
x16 = np.linspace(-2.654, -2.565, 100)
y16 = 16 * (x16 + 2.64) ** 2 + 2.63
plt.plot(x16, y16, 'k')

# 17. y = 1.6*(x+4.3) for -2.774 < x < -2.654
x17 = np.linspace(-2.774, -2.654, 100)
y17 = 1.6 * (x17 + 4.3)
plt.plot(x17, y17, 'k')

# 18. y = -0.37*x + 1.35 for 2.42 < y < 2.753
y18 = np.linspace(2.42, 2.753, 100)
x18 = (1.35 - y18) / 0.37
plt.plot(x18, y18, 'k')

# 19. y = 7*(x+2.845)**2 + 2.405 for -2.89 < x < -2.774
x19 = np.linspace(-2.89, -2.774, 100)
y19 = 7 * (x19 + 2.845) ** 2 + 2.405
plt.plot(x19, y19, 'k')

# 20. y = 5*x + 21.7 for -3.79 < x < -3.734
x20 = np.linspace(-3.79, -3.734, 100)
y20 = 5 * x20 + 21.7
plt.plot(x20, y20, 'k')

# 21. y = -x - 0.7 for -4.028 < x < -3.734
x21 = np.linspace(-4.028, -3.734, 100)
y21 = -x21 - 0.7
plt.plot(x21, y21, 'k')

# 22. (y-2.8)**2 = 4*(x+4.1) for 2.8 < y < 3.64
y22 = np.linspace(2.8, 3.64, 100)
x22 = (y22 - 2.8) ** 2 / 4 - 4.1
plt.plot(x22, y22, 'k')

## 23. y = -1.1*x - 0.66 for 3.65 < y < 3.83(多余线条删除)
# y23 = np.linspace(3.65, 3.83, 100)
# x23 = (-y23 - 0.66) / -1.1
# plt.plot(x23, y23, 'k')

# 24. y = -1.4*x - 1.836 for -3.92 < x < -3.717
x24 = np.linspace(-3.92, -3.717, 100)
y24 = -1.4 * x24 - 1.836
plt.plot(x24, y24, 'k')

# 25. y = 3*(x+3.5)**2 + 3.22 for -3.72 < x < -3.526
x25 = np.linspace(-3.72, -3.526, 100)
y25 = 3 * (x25 + 3.5) ** 2 + 3.22
plt.plot(x25, y25, 'k')

# 26. Circle: (x+3.49)**2 + (y-3.24)**2 <= 0.0013
theta = np.linspace(0, 2 * np.pi, 100)
r = np.sqrt(0.0013)
x26 = -3.49 + r * np.cos(theta)
y26 = 3.24 + r * np.sin(theta)
plt.fill(x26, y26, 'k')

# 27. y = 5.7*(x+3.55)**2 + 3.32 for -3.7 < x < -3.55
x27 = np.linspace(-3.7, -3.55, 100)
y27 = 5.7 * (x27 + 3.55) ** 2 + 3.32
plt.plot(x27, y27, 'k')

# 28. y = 3.32 for -3.55 < x < -3.44
x28 = np.linspace(-3.55, -3.44, 100)
y28 = np.full_like(x28, 3.32)
plt.plot(x28, y28, 'k')

# 29. y = -x - 0.11 for -3.483 < x < -3.39
x29 = np.linspace(-3.483, -3.39, 100)
y29 = -x29 - 0.11
plt.plot(x29, y29, 'k')

# 30. (y-3.4)**2 = 0.06*(x+3.492) for 3.375 < y < 3.437
y30 = np.linspace(3.375, 3.437, 100)
x30 = (y30 - 3.4) ** 2 / 0.06 - 3.492
plt.plot(x30, y30, 'k')

# 31. y = 0.1*x + 3.784 for -3.47 < x < -3.4
x31 = np.linspace(-3.47, -3.4, 100)
y31 = 0.1 * x31 + 3.784
plt.plot(x31, y31, 'k')

# 32. y = -14*(x+3.5)**2 + 3.6 for -3.48 < x < -3.396
x32 = np.linspace(-3.48, -3.396, 100)
y32 = -14 * (x32 + 3.5) ** 2 + 3.6
plt.plot(x32, y32, 'k')

# 33. y = -0.45*x + 2.03 for 3.596 < y < 3.826
y33 = np.linspace(3.596, 3.826, 100)
x33 = (2.03 - y33) / 0.45
plt.plot(x33, y33, 'k')

# 34. (y-3.86)**2 = 0.06*(x+4.096) for 3.831 < y < 3.89
y34 = np.linspace(3.831, 3.89, 100)
x34 = (y34 - 3.86) ** 2 / 0.06 - 4.096
plt.plot(x34, y34, 'k')

# 35. y = -0.35*x + 2.48 for -4.019 < x < -3.5
x35 = np.linspace(-4.019, -3.5, 100)
y35 = -0.35 * x35 + 2.48
plt.plot(x35, y35, 'k')

# 36. y = -0.05*x + 3.686 for 3.887 < y < 3.89
y36 = np.linspace(3.887, 3.89, 100)
x36 = (3.686 - y36) / 0.05
plt.plot(x36, y36, 'k')

# 37. y = -2*(x+3.61)**2 + 3.73 for -3.497 < x < -3.333
x37 = np.linspace(-3.497, -3.333, 100)
y37 = -2 * (x37 + 3.61) ** 2 + 3.73
plt.plot(x37, y37, 'k')

# 38. y = 10*(x+3.32)**2 + 3.573 for -3.332 < x < -3.253
x38 = np.linspace(-3.332, -3.253, 100)
y38 = 10 * (x38 + 3.32) ** 2 + 3.573
plt.plot(x38, y38, 'k')

# 39. (y-3.6)**2 = 1.3*(x+3.25) for 3.621 < y < 4.339
y39 = np.linspace(3.621, 4.339, 100)
x39 = (y39 - 3.6) ** 2 / 1.3 - 3.25
plt.plot(x39, y39, 'k')

# # 40. y = -3*x - 8 for 3.697 < y < 3.8(多余线条注释)
# y40 = np.linspace(3.697, 3.8, 100)
# x40 = (-y40 - 8) / -3
# plt.plot(x40, y40, 'k')

# # 41. y = -10*x - 34.4 for 3.65 < y < 3.744(多余线条注释)
# y41 = np.linspace(3.65, 3.744, 100)
# x41 = (-y41 - 34.4) / -10
# plt.plot(x41, y41, 'k')

# # 42. (y-3.4)**2 = 2*(x+3.76) for 3.57 < y < 3.702
y42 = np.linspace(3.57, 3.702, 100)
x42 = (y42 - 3.4) ** 2 / 2 - 3.76
plt.plot(x42, y42, 'k')

# 43. y = 2*x + 11.6 for -3.88 < x < -3.69
x43 = np.linspace(-3.88, -3.69, 100)
y43 = 2 * x43 + 11.6
plt.plot(x43, y43, 'k')

# 44. (y-3.7)**2 = 2.6*(x+3.79) for 3.8 < y < 4.22
y44 = np.linspace(3.8, 4.22, 100)
x44 = (y44 - 3.7) ** 2 / 2.6 - 3.79
plt.plot(x44, y44, 'k')

# 45. (y-4.2)**2 = 2.7*(x+3.69) for 3.745 < y < 4.21
y45 = np.linspace(3.745, 4.21, 100)
x45 = (y45 - 4.2) ** 2 / 2.7 - 3.69
plt.plot(x45, y45, 'k')

# 46. (y-4.35)**2 = (x+3.65) for 3.774 < y < 4.295
y46 = np.linspace(3.774, 4.295, 100)
x46 = (y46 - 4.35) ** 2 - 3.65
plt.plot(x46, y46, 'k')

# 47. y = 2.3*(x+3.2)**2 + 3.85 for -3.639 < x < -3.294
x47 = np.linspace(-3.639, -3.294, 100)
y47 = 2.3 * (x47 + 3.2) ** 2 + 3.85
plt.plot(x47, y47, 'k')

# 48. y = -0.7*(x+3.5)**2 + 4.32 for -3.56 < x < -3.04
x48 = np.linspace(-3.56, -3.04, 100)
y48 = -0.7 * (x48 + 3.5) ** 2 + 4.32
plt.plot(x48, y48, 'k')

# 49. (y-3.77)**2 = -2*(x+3.22) for 3.077 < y < 3.57
y49 = np.linspace(3.077, 3.57, 100)
x49 = -3.22 - (y49 - 3.77) ** 2 / 2
plt.plot(x49, y49, 'k')

# 50. (y-4)**2 = -2.2*(x+3.06) for 3.067 < y < 3.514
y50 = np.linspace(3.067, 3.514, 100)
x50 = -3.06 - (y50 - 4) ** 2 / 2.2
plt.plot(x50, y50, 'k')

# 51. y = -6*x - 15.44 for 3.254 < y < 3.522(多余线条注释)
# y51 = np.linspace(3.254, 3.522, 100)
# x51 = (-y51 - 15.44) / -6
# plt.plot(x51, y51, 'k')

# 52. y = 3*x + 12.57 for 3.018 < y < 3.389
y52 = np.linspace(3.018, 3.389, 100)
x52 = (y52 - 12.57) / 3
plt.plot(x52, y52, 'k')

# 53. y = 2.2*x + 10 for 3.015 < y < 3.539
y53 = np.linspace(3.015, 3.539, 100)
x53 = (y53 - 10) / 2.2
plt.plot(x53, y53, 'k')

# # 54. y = -9*x - 24.5 for 2.87 < y < 3.22(多余线条注释)
# y54 = np.linspace(2.87, 3.22, 100)
# x54 = (-y54 - 24.5) / -9
# plt.plot(x54, y54, 'k')

# 55. (y-3.3)**2 = -0.8*(x+2.81) for 2.87 < y < 3.3
y55 = np.linspace(2.87, 3.3, 100)
x55 = -2.81 - (y55 - 3.3) ** 2 / 0.8
plt.plot(x55, y55, 'k')

# 56. y = 15*(x+3.03) for 3.015 < y < 3.667
y56 = np.linspace(3.015, 3.667, 100)
x56 = y56 / 15 - 3.03
plt.plot(x56, y56, 'k')

# 57. y = 3*x + 11.5 for -2.828 < x < -2.786
x57 = np.linspace(-2.828, -2.786, 100)
y57 = 3 * x57 + 11.5
plt.plot(x57, y57, 'k')

# 58. (y-3.18)**2 = 0.25*(x+2.78) for 3.095 < y < 3.23
y58 = np.linspace(3.095, 3.23, 100)
x58 = (y58 - 3.18) ** 2 / 0.25 - 2.78
plt.plot(x58, y58, 'k')

# 59. y = 4*x + 14.23 for -2.739 < x < -2.7
x59 = np.linspace(-2.739, -2.7, 100)
y59 = 4 * x59 + 14.23
plt.plot(x59, y59, 'k')

# 60. (y-3.36)**2 = 2*(x+2.7) for 3.43 < y < 3.77
y60 = np.linspace(3.43, 3.77, 100)
x60 = (y60 - 3.36) ** 2 / 2 - 2.7
plt.plot(x60, y60, 'k')

# 61. y = 2.8*(x+3.962) for 3.77 < y < 3.98
y61 = np.linspace(3.77, 3.98, 100)
x61 = y61 / 2.8 - 3.962
plt.plot(x61, y61, 'k')

# 62. y = (x+2.9)**2 + 3.39 for -2.7 < x < -2.37
x62 = np.linspace(-2.7, -2.37, 100)
y62 = (x62 + 2.9) ** 2 + 3.39
plt.plot(x62, y62, 'k')

# 63. y = 1.4*(x+2.7)**2 + 3.4 for -2.7 < x < -2.287
x63 = np.linspace(-2.7, -2.287, 100)
y63 = 1.4 * (x63 + 2.7) ** 2 + 3.4
plt.plot(x63, y63, 'k')

# 64. y = -0.6*x + 1.95 for -2.55 < x < -2.45
x64 = np.linspace(-2.55, -2.45, 100)
y64 = -0.6 * x64 + 1.95
plt.plot(x64, y64, 'k')

# 65. (y-3.49)**2 = 0.02*(x+2.554) for 3.48 < y < 3.506
y65 = np.linspace(3.48, 3.506, 100)
x65 = (y65 - 3.49) ** 2 / 0.02 - 2.554
plt.plot(x65, y65, 'k')

# 66. y = -7*(x+2.515)**2 + 3.51 for -2.54 < x < -2.42
x66 = np.linspace(-2.54, -2.42, 100)
y66 = -7 * (x66 + 2.515) ** 2 + 3.51
plt.plot(x66, y66, 'k')

# 67. y = 60*(x+2.441)**2 + 3.42 for -2.441 < x < -2.42
x67 = np.linspace(-2.441, -2.42, 100)
y67 = 60 * (x67 + 2.441) ** 2 + 3.42
plt.plot(x67, y67, 'k')

# 68. y = 3.42 for -2.45 < x < -2.441
x68 = np.linspace(-2.45, -2.441, 100)
y68 = np.full_like(x68, 3.42)
plt.plot(x68, y68, 'k')

# 69. y = -2.8*(x+2.71)**2 + 3.24 for -2.77 < x < -2.63
x69 = np.linspace(-2.77, -2.63, 100)
y69 = -2.8 * (x69 + 2.71) ** 2 + 3.24
plt.plot(x69, y69, 'k')

# 70. y = -12*(x+2.64)**2 + 3.223 for -2.63 < x < -2.548
x70 = np.linspace(-2.63, -2.548, 100)
y70 = -12 * (x70 + 2.64) ** 2 + 3.223
plt.plot(x70, y70, 'k')

# 71. y = 3.25 for -2.77 < x < -2.65
x71 = np.linspace(-2.77, -2.65, 100)
y71 = np.full_like(x71, 3.25)
plt.plot(x71, y71, 'k')

# 72. y = -3.8*(x+2.7)**2 + 3.26 for -2.65 < x < -2.56
x72 = np.linspace(-2.65, -2.56, 100)
y72 = -3.8 * (x72 + 2.7) ** 2 + 3.26
plt.plot(x72, y72, 'k')

# 73. y = -2*(x+2.64)**2 + 3.32 for -2.64 < x < -2.52
x73 = np.linspace(-2.64, -2.52, 100)
y73 = -2 * (x73 + 2.64) ** 2 + 3.32
plt.plot(x73, y73, 'k')

# 74. y = 1.2*x + 6.32 for 3.27 < y < 3.293
y74 = np.linspace(3.27, 3.293, 100)
x74 = (y74 - 6.32) / 1.2
plt.plot(x74, y74, 'k')

# 75. y = -25*(x+2.65)**2 + 3.21 for -2.689 < x < -2.619
x75 = np.linspace(-2.689, -2.619, 100)
y75 = -25 * (x75 + 2.65) ** 2 + 3.21
plt.plot(x75, y75, 'k')

# 76. (y-3.24)**2 = -0.5*(x+2.61) for 3.028 < y < 3.184
y76 = np.linspace(3.028, 3.184, 100)
x76 = -2.61 - (y76 - 3.24) ** 2 / 0.5
plt.plot(x76, y76, 'k')

# 77. (y-3.09)**2 = 0.27*(x+2.715) for 3.027 < y < 3.139
y77 = np.linspace(3.027, 3.139, 100)
x77 = (y77 - 3.09) ** 2 / 0.27 - 2.715
plt.plot(x77, y77, 'k')

# 78. Circle: (x+2.692)**2 + (y-3.152)**2 <= 0.0003
r78 = np.sqrt(0.0003)
x78 = -2.692 + r78 * np.cos(theta)
y78 = 3.152 + r78 * np.sin(theta)
plt.fill(x78, y78, 'k')

# 79. Ellipse: (x+2.69)**2/0.0006 + (y-3.07)**2/0.0003 <= 1
ell79 = Ellipse(xy=(-2.69, 3.07), width=2 * np.sqrt(0.0006),
                height=2 * np.sqrt(0.0003), angle=0, color='k')
plt.gca().add_patch(ell79)

# 80. Rotated Ellipse: (0.707(x+2.69)+0.707(y-3.07))**2/0.0006 +
#      (-0.707(x+2.69)+0.707(y-3.07))**2/0.0003 <= 1
ell80 = Ellipse(xy=(-2.69, 3.07), width=2 * np.sqrt(0.0006),
                height=2 * np.sqrt(0.0003), angle=45, color='k')
plt.gca().add_patch(ell80)

# 81. Ellipse: (x+2.69)**2/0.0008 + (y-3.117)**2/0.0004 <= 1
ell81 = Ellipse(xy=(-2.69, 3.117), width=2 * np.sqrt(0.0008),
                height=2 * np.sqrt(0.0004), angle=0, color='k')
plt.gca().add_patch(ell81)

# 82. Rotated Ellipse: (0.707(x+2.69)+0.707(y-3.117))**2/0.0008 +
#      (-0.707(x+2.69)+0.707(y-3.117))**2/0.0004 <= 1
ell82 = Ellipse(xy=(-2.69, 3.117), width=2 * np.sqrt(0.0008),
                height=2 * np.sqrt(0.0004), angle=45, color='k')
plt.gca().add_patch(ell82)

# 83. y = -2.5*(x+2.8)**2 + 2.704 for -2.768 < x < -2.674
x83 = np.linspace(-2.768, -2.674, 100)
y83 = -2.5 * (x83 + 2.8) ** 2 + 2.704
plt.plot(x83, y83, 'k')

# 84. y = -x - 0.07 for 2.638 < y < 2.701
y84 = np.linspace(2.638, 2.701, 100)
x84 = -y84 - 0.07
plt.plot(x84, y84, 'k')

# 85. y = 0.8*x + 4.803 for -2.707 < x < -2.674
x85 = np.linspace(-2.707, -2.674, 100)
y85 = 0.8 * x85 + 4.803
plt.plot(x85, y85, 'k')

# 86. (y-3.6)**2 = 1.4*(x+3.93) for 3.283 < y < 3.626
y86 = np.linspace(3.283, 3.626, 100)
x86 = (y86 - 3.6) ** 2 / 1.4 - 3.93
plt.plot(x86, y86, 'k')

# 87. (y-3.5)**2 = (x+3.79) for 3.271 < y < 3.469
y87 = np.linspace(3.271, 3.469, 100)
x87 = (y87 - 3.5) ** 2 - 3.79
plt.plot(x87, y87, 'k')

# # 88. y = -2*x - 4.04 for 3.174 < y < 3.314(多余线条删除)
# y88 = np.linspace(3.174, 3.314, 100)
# x88 = (-y88 - 4.04) / -2
# plt.plot(x88, y88, 'k')

# 89. y = -0.5*x + 1.37 for -3.69 < x < -3.607
x89 = np.linspace(-3.69, -3.607, 100)
y89 = -0.5 * x89 + 1.37
plt.plot(x89, y89, 'k')

# 90. x = -3.69 for 3.103 < y < 3.214
y90 = np.linspace(3.103, 3.214, 100)
x90 = np.full_like(y90, -3.69)
plt.plot(x90, y90, 'k')

# 91. y = -0.5*x + 1.25 for -3.752 < x < -3.69
x91 = np.linspace(-3.752, -3.69, 100)
y91 = -0.5 * x91 + 1.25
plt.plot(x91, y91, 'k')

# 92. x = -3.752 for 3.052 < y < 3.126
y92 = np.linspace(3.052, 3.126, 100)
x92 = np.full_like(y92, -3.752)
plt.plot(x92, y92, 'k')

# 93. (y-2.93)**2 = 3*(x+3.84) for 2.836 < y < 3.107
y93 = np.linspace(2.836, 3.107, 100)
x93 = (y93 - 2.93) ** 2 / 3 - 3.84
plt.plot(x93, y93, 'k')

# 94. (y-2.7)**2 = 2.5*(x+3.84) for 2.83 < y < 3.08
y94 = np.linspace(2.83, 3.08, 100)
x94 = (y94 - 2.7) ** 2 / 2.5 - 3.84
plt.plot(x94, y94, 'k')

# 95. y = -1.5*x - 1.17 for -3.743 < x < -3.645
x95 = np.linspace(-3.743, -3.645, 100)
y95 = -1.5 * x95 - 1.17
plt.plot(x95, y95, 'k')

# 96. y = -5*(x+3.83)**2 + 4.48 for -3.95 < x < -3.745
x96 = np.linspace(-3.95, -3.745, 100)
y96 = -5 * (x96 + 3.83) ** 2 + 4.48
plt.plot(x96, y96, 'k')

# 97. y = 1.5*x + 10.4 for 3.658 < y < 4.277
y97 = np.linspace(3.658, 4.277, 100)
x97 = (y97 - 10.4) / 1.5
plt.plot(x97, y97, 'k')

# 98. (y-4)**2 = 0.7*(x+4.19) for 4.276 < y < 4.41
y98 = np.linspace(4.276, 4.41, 100)
x98 = (y98 - 4) ** 2 / 0.7 - 4.19
plt.plot(x98, y98, 'k')

# 99. (y-2.7)**2 = 3*(x+4.8) for 3.245 < y < 3.653
y99 = np.linspace(3.245, 3.653, 100)
x99 = (y99 - 2.7) ** 2 / 3 - 4.8
plt.plot(x99, y99, 'k')

# 100. (y-2.6)**2 = 1.8*(x+4.9) for 2.423 < y < 3.04
y100 = np.linspace(2.423, 3.04, 100)
x100 = (y100 - 2.6) ** 2 / 1.8 - 4.9
plt.plot(x100, y100, 'k')

# 101. y=2.3x+14.06 {3.04<y<3.245}
y101 = np.linspace(3.04, 3.245, 100)
x101 = (y101 - 14.06) / 2.3
plt.plot(x101, y101, 'k')

# 102. (y-2.5)**2=0.41*(x+4.895) {1.974<y<2.42}
y102 = np.linspace(1.974, 2.42, 100)
x102 = (y102 - 2.5) ** 2 / 0.41 - 4.895
plt.plot(x102, y102, 'k')

# 103. y=-0.7x-0.98 {-4.22<x<-3.708}
x103 = np.linspace(-4.22, -3.708, 100)
y103 = -0.7 * x103 - 0.98
plt.plot(x103, y103, 'k')

# 104. y=-0.8x-1.36 {-3.713<x<-3.454}
x104 = np.linspace(-3.713, -3.454, 100)
y104 = -0.8 * x104 - 1.36
plt.plot(x104, y104, 'k')

# 105. (y+1)**2=-5.3*(x+2.36) {0<y<1.4}
y105 = np.linspace(0, 1.4, 100)
x105 = -2.36 - (y105 + 1) ** 2 / 5.3
plt.plot(x105, y105, 'k')

# 106. (y+0.1)**2=-3.3*(x+2.57) {0.079<y<0.983}
y106 = np.linspace(0.079, 0.983, 100)
x106 = -2.57 - (y106 + 0.1) ** 2 / 3.3
plt.plot(x106, y106, 'k')

# 107. y=-1.1x-2.25 {0.346<y<0.932}
y107 = np.linspace(0.346, 0.932, 100)
x107 = (y107 - (-2.25)) / (-1.1)
plt.plot(x107, y107, 'k')

# 108. y=-1.4*(x+3.1)**2+1.1 {-2.82<x<-2.37}
x108 = np.linspace(-2.82, -2.37, 100)
y108 = -1.4 * (x108 + 3.1) ** 2 + 1.1
plt.plot(x108, y108, 'k')

# 109. y=-1.1x-2.1 {-3.6<x<-2.817}
x109 = np.linspace(-3.6, -2.817, 100)
y109 = -1.1 * x109 - 2.1
plt.plot(x109, y109, 'k')

# 110. (y-3)**2=2.5*(x+4.11) {1.864<y<2.514}
y110 = np.linspace(1.864, 2.514, 100)
x110 = (y110 - 3) ** 2 / 2.5 - 4.11
plt.plot(x110, y110, 'k')

# 111. (y-3.1)**2=3*(x+4.14) {2.515<y<3.25}
y111 = np.linspace(2.515, 3.25, 100)
x111 = (y111 - 3.1) ** 2 / 3 - 4.14
plt.plot(x111, y111, 'k')

# 112. (y-3.2)**2=4*(x+4.136) {3.254<y<3.757}
y112 = np.linspace(3.254, 3.757, 100)
x112 = (y112 - 3.2) ** 2 / 4 - 4.136
plt.plot(x112, y112, 'k')

# 113. (y-3.4)**2=1.6*(x+4.2) {4.057<y<4.32}
y113 = np.linspace(4.057, 4.32, 100)
x113 = (y113 - 3.4) ** 2 / 1.6 - 4.2
plt.plot(x113, y113, 'k')

# 114. y=-0.6x-0.54 {-4.63<x<-4.13}
x114 = np.linspace(-4.63, -4.13, 100)
y114 = -0.6 * x114 - 0.54
plt.plot(x114, y114, 'k')

# 115. (y-2.8)**2=0.9*(x+4.74) {2.076<y<2.8}
y115 = np.linspace(2.076, 2.8, 100)
x115 = (y115 - 2.8) ** 2 / 0.9 - 4.74
plt.plot(x115, y115, 'k')

# 116. y=10*(x+5.02) {2.8<y<3.15}
y116 = np.linspace(2.8, 3.15, 100)
x116 = y116 / 10 - 5.02
plt.plot(x116, y116, 'k')

# 117. (y-3.2)**2=2.2*(x+4.59) {1.625<y<3}
y117 = np.linspace(1.625, 3, 100)
x117 = (y117 - 3.2) ** 2 / 2.2 - 4.59
plt.plot(x117, y117, 'k')

# 118.
y118 = np.linspace(3, 3.45, 100)
x118 = (y118 - 3.2) ** 2 / 2 - 4.59
plt.plot(x118, y118, 'k')

# # 119. y=-2x-3.8 {1.56<y<2.366} (多余线条注释)
# y119 = np.linspace(1.56, 2.366, 100)
# x119 = (-y119 - 3.8) / -2
# plt.plot(x119, y119, 'k')

# # 120. y=-1.2x-1.67 {0.86<y<1.55}(多余线条注释)
# y120 = np.linspace(0.86, 1.55, 100)
# x120 = (-y120 - 1.67) / -1.2
# plt.plot(x120, y120, 'k')

# 121. y=1.2*(x+1.4)**2+0.45 {-1.747<x<-1.4}
x121 = np.linspace(-1.747, -1.4, 100)
y121 = 1.2 * (x121 + 1.4) ** 2 + 0.45
plt.plot(x121, y121, 'k')

# 122. y=-0.75x-0.72 {-2.105<x<-1.748}
x122 = np.linspace(-2.105, -1.748, 100)
y122 = -0.75 * x122 - 0.72
plt.plot(x122, y122, 'k')

# 123. y=0.7*(x+1.4)**2+0.43 {-2.184<x<-1.4}
x123 = np.linspace(-2.184, -1.4, 100)
y123 = 0.7 * (x123 + 1.4) ** 2 + 0.43
plt.plot(x123, y123, 'k')

# 124. y=6x+21 {-3.139<x<-3.107}
x124 = np.linspace(-3.139, -3.107, 100)
y124 = 6 * x124 + 21
plt.plot(x124, y124, 'k')

# 124. y=6x+21 {-3.139<x<-3.107}
x124 = np.linspace(-3.139, -3.107, 100)
y124 = 6 * x124 + 21
plt.plot(x124, y124, 'k')

# 125. y=-0.3x+1.432 {-3.288<x<-3.108}
x125 = np.linspace(-3.288, -3.108, 100)
y125 = -0.3 * x125 + 1.432
plt.plot(x125, y125, 'k')

# 126. y=-0
x126 = np.linspace(-3.341, -3.139, 100)
y126 = -0.3 * x126 + 1.22
plt.plot(x126, y126, 'k')

# 127. y=4x+15.72 {2.26<y<2.38}
y127 = np.linspace(2.26, 2.38, 100)
x127 = (y127 - 15.72) / 4
plt.plot(x127, y127, 'k')

# 128. (y-2.35)**2=0.08*(x+3.345) {2.38<y<2.418}
y128 = np.linspace(2.38, 2.418, 100)
x128 = (y128 - 2.35) ** 2 / 0.08 - 3.345
plt.plot(x128, y128, 'k')

# 129. (y-2.26)**2=0.06*(x极客
y129 = np.linspace(2.222, 2.26, 100)
x129 = (y129 - 2.26) ** 2 / 0.06 - 3.365
plt.plot(x129, y129, 'k')

# 130. y=5x+17.83 {2.435<y<2.485}
y130 = np.linspace(2.435, 2.485, 100)
x130 = (y130 - 17.83) / 5
plt.plot(x130, y130, 'k')

# 131. (y-2.403)**2=-0.06*(x+3.07) {2.355<y<2.561}
y131 = np.linspace(2.355, 2.561, 100)
x131 = -3.07 - (y131 - 2.403) ** 2 / 0.06
plt.plot(x131, y131, 'k')

# 132. y=-0.3x+1.515 {-3.898<x<-3.485}
x132 = np.linspace(-3.898, -3.485, 100)
y132 = -0.3 * x132 + 1.515
plt.plot(x132, y132, 'k')

# 133. y=-0.3x+1.43 {2.45<y<2.609}
y133 = np.linspace(2.45, 2.609, 100)
x133 = (1.43 - y133) / 0.3
plt.plot(x133, y133, 'k')

# 134. y=5x+19.46 {2.2<y<2.54}
y134 = np.linspace(2.2, 2.54, 100)
x134 = (y134 - 19.46) / 5
plt.plot(x134, y134, 'k')

# 135. y=-0.3x+1.16 {2.097<y<2.261}
y135 = np.linspace(2.097, 2.261, 100)
x135 = (1.16 - y135) / 0.3
plt.plot(x135, y135, 'k')

# 136. y=-0.36*(x+4)**2+2.3 {-3.912<x<-3.667}
x136 = np.linspace(-3.912, -3.667, 100)
y136 = -0.36 * (x136 + 4) ** 2 + 2.3
plt.plot(x136, y136, 'k')

# 137. y=-0.35*(x+4)**2+2.38 {-3.956<x<-3.438}
x137 = np.linspace(-3.956, -3.438, 100)
y137 = -0.35 * (x137 + 4) ** 2 + 2.38
plt.plot(x137, y137, 'k')

# 138. y=3x+14.42 {2.45<y<2.69}
y138 = np.linspace(2.45, 2.69, 100)
x138 = (y138 - 14.42) / 3
plt.plot(x138, y138, 'k')

# 139. y=2.5x+12.38 {-3.88<x<-3.849}
x139 = np.linspace(-3.88, -3.849, 100)
y139 = 2.5 * x139 + 12.38
plt.plot(x139, y139, 'k')

# 140. y=2.756 {-3.85<x<-极客
x140 = np.linspace(-3.85, -3.789, 100)
y140 = np.full_like(x140, 2.756)
plt.plot(x140, y140, 'k')

# 141. (y-1.976)**2=-0.1*(x+2.98) {1.976<y<2.096}
y141 = np.linspace(1.976, 2.096, 100)
x141 = -2.98 - (y141 - 1.976) ** 2 / 0.1
plt.plot(x141, y141, 'k')

# 142. (y-2.3)**2=2.5*(x+3.016) {1.106<y<1.987}
y142 = np.linspace(1.106, 1.987, 100)
x142 = (y142 - 2.3) ** 2 / 2.5 - 3.016
plt.plot(x142, y142, 'k')

# 143. (y-0.1)**2=-2.5*(x+2.04) {0.755<y<1.11}
y143 = np.linspace(0.755, 1.11, 100)
x143 = -2.04 - (y143 - 0.1) ** 2 / 2.5
plt.plot(x143, y143, 'k')

# 144. (y-1.93)**2=-0.3*(x+3.03) {1.95<y<2.094}
y144 = np.linspace(1.95, 2.094, 100)
x144 = -3.03 - (y144 - 1.93) ** 2 / 0.3
plt.plot(x144, y144, 'k')

# 145. (y-2)**2=2.1*(x+极客
y145 = np.linspace(1.025, 1.947, 100)
x145 = (y145 - 2) ** 2 / 2.1 - 3.03
plt.plot(x145, y145, 'k')

# 146. y**2=-1.7*(x+1.97) {0.344<y<1.023}
y146 = np.linspace(0.344, 1.023, 100)
x146 = -1.97 - y146 ** 2 / 1.7
plt.plot(x146, y146, 'k')

# 147. (y-2)**2=1.6*(x+3.18) {1.016<y<1.883}
y147 = np.linspace(1.016, 1.883, 100)
x147 = (y147 - 2) ** 2 / 1.6 - 3.18
plt.plot(x147, y147, 'k')

# 148. (y-1.09)**2=-1.4*(x+2.7) {1.9<y<2.2}
y148 = np.linspace(1.9, 2.2, 100)
x148 = -2.7 - (y148 - 1.09) ** 2 / 1.4
plt.plot(x148, y148, 'k')

# 149. (y-1.2)**2=-3*(x+3) {1.9<y<2.15}
y149 = np.linspace(1.9, 2.15, 100)
x149 = -3 - (y149 - 1.2) ** 2 / 3
plt.plot(x149, y149, 'k')

# 150. y=-2x-4.24 {-3.176<x<-3.08}
x150 = np.linspace(-3.176, -3.08, 100)
y150 = -2 * x150 - 4.24
plt.plot(x150, y150, 'k')

# 151. (y-2)**2=1.7*(x+3.08) {1.36<y<1.92}
y151 = np.linspace(1.36, 1.92, 100)
x151 = (y151 - 2) ** 2 / 1.7 - 3.08
plt.plot(x151, y151, 'k')

# 152. y**2=-1.3*(x+1.78) {0.348<y<0.748}
y152 = np.linspace(0.348, 0.748, 100)
x152 = -1.78 - y152 ** 2 / 1.3
plt.plot(x152, y152, 'k')

# 153. y=-1.3x-1.96 {-2.1<x<-1.738}
x153 = np.linspace(-2.1, -1.738, 100)
y153 = -1.3 * x153 - 1.96
plt.plot(x153, y153, 'k')

# 154. y=0.3*(x+3.13)**2-0.21 {-3.59<x<-3.13}
x154 = np.linspace(-3.59, -3.13, 100)
y154 = 0.3 * (x154 + 3.13) ** 2 - 0.21
plt.plot(x154, y154, 'k')

# 155. y=0.48*(x+3.13)**2-0.21 {-3.13<x<-2.04}
x155 = np.linspace(-3.13, -2.04, 100)
y155 = 0.48 * (x155 + 3.13) ** 2 - 0.21
plt.plot(x155, y155, 'k')

# 156. y=0.26*(x+3.13)**2-0.3 {-3.66<x<-3.13}
x156 = np.linspace(-3.66, -3.13, 100)
y156 = 0.26 * (x156 + 3.13) ** 2 - 0.3
plt.plot(x156, y156, 'k')

# 157. y=0.4*(x+3.13)**2-0.3 {-3.13<x<-2.48}
x157 = np.linspace(-3.13, -2.48, 100)
y157 = 0.4 * (x157 + 3.13) ** 2 - 0.3
plt.plot(x157, y157, 'k')

# 158. y=0.8x+1.86 {-2.482<x<-1.878}
x158 = np.linspace(-2.482, -1.878, 100)
y158 = 0.8 * x158 + 1.86
plt.plot(x158, y158, 'k')

# 159. y=0.26*(x+3.13)**2-0.4 {-3.72<x<-3.13}
x159 = np.linspace(-3.72, -3.13, 100)
y159 = 0.26 * (x159 + 3.13) ** 2 - 0.4
plt.plot(x159, y159, 'k')

# 160. y=0.4*(x+3.13)**2-0.4 {-3.13<x<-1.77}
x160 = np.linspace(-3.13, -1.77, 100)
y160 = 0.4 * (x160 + 3.13) ** 2 - 0.4
plt.plot(x160, y160, 'k')

# 161. y=1.4x+4.89 {-0.31<y<-0.14}
y161 = np.linspace(-0.31, -0.14, 100)
x161 = (y161 - 4.89) / 1.4
plt.plot(x161, y161, 'k')

# 162. y=x+3.59 {-3.725<x<-3.63}
x162 = np.linspace(-3.725, -3.63, 100)
y162 = x162 + 3.59
plt.plot(x162, y162, 'k')

# 163. y=0.2x+极客
x163 = np.linspace(-3.94, -3.715, 100)
y163 = 0.2 * x163 + 0.45
plt.plot(x163, y163, 'k')

# 164. x=-3.94 {-0.335<y<-0.073}
y164 = np.linspace(-0.335, -0.073, 100)
x164 = np.full_like(y164, -3.94)
plt.plot(x164, y164, 'k')

# 165. y=-10x-37.43 {-0.29<x<-0.04}
x165 = np.linspace(-0.29, -0.04, 100)
y165 = -10 * x165 - 37.43
plt.plot(x165, y165, 'k')

# 166. y=0.2x+0.725 {-3.94<x<-3.739}
x166 = np.linspace(-3.94, -3.739, 100)
y166 = 0.2 * x166 + 0.725
plt.plot(x166, y166, 'k')

# 167. y=-1.8*(x+3.82)**2+0.03 {-3.93<x<-3.556}
x167 = np.linspace(-3.93, -3.556, 100)
y167 = -1.8 * (x167 + 3.82) ** 2 + 0.03
plt.plot(x167, y167, 'k')

# 168. y=0.4x+1.58 {-4.7<x<-3.92}
x168 = np.linspace(-4.7, -3.92, 100)
y168 = 0.4 * x168 + 1.58
plt.plot(x168, y168, 'k')

# 169. y=0.2x+0.64 {-4.84<x<-4.7}
x169 = np.linspace(-4.84, -4.7, 100)
y169 = 0.2 * x169 + 0.64
plt.plot(x169, y169, 'k')

# 170. y=-1.2*(x+3.82)**2+0.13 {-3.98<x<-3.56}
x170 = np.linspace(-3.98, -3.56, 100)
y170 = -1.2 * (x170 + 3.82) ** 2 + 0.13
plt.plot(x170, y170, 'k')

# 171. y=0.4x+1.69 {-0.174<y<0.1}
y171 = np.linspace(-0.174, 0.1, 100)
x171 = (y171 - 1.69) / 0.4
plt.plot(x171, y171, 'k')

# 172. y=0.2x+0.756 {-4.876<x<-4.66}
x172 = np.linspace(-4.876, -4.66, 100)
y172 = 0.2 * x172 + 0.756
plt.plot(x172, y172, 'k')

# 173. y=-(x+3.87)**2+0.23 {-4.208<x<-3.585}
x173 = np.linspace(-4.208, -3.585, 100)
y173 = -(x173 + 3.87) ** 2 + 0.23
plt.plot(x173, y173, 'k')

# 174. y=0.5x+2.22 {0<y<0.115}
y174 = np.linspace(0, 0.115, 100)
x174 = (y174 - 2.22) / 0.5
plt.plot(x174, y174, 'k')

# 175. y=0.38*(x+5)**2-0.12 {-4.873<x<-4.443}
x175 = np.linspace(-4.873, -4.443, 100)
y175 = 0.38 * (x175 + 5) ** 2 - 0.12
plt.plot(x175, y175, 'k')

# 176. y**2=-0.8*(x+极客
y176 = np.linspace(-0.14, 0.316, 100)
x176 = -3.55 - y176 ** 2 / 0.8
plt.plot(x176, y176, 'k')

# 177. y=-1.3x-4.45 {-4.02<x<-3.67}
x177 = np.linspace(-4.02, -3.67, 100)
y177 = -1.3 * x177 - 4.45
plt.plot(x177, y177, 'k')

# 178. y=-1.3x-4.46 {-4.33<x<-4.082}
x178 = np.linspace(-4.33, -4.082, 100)
y178 = -1.3 * x178 - 4.46
plt.plot(x178, y178, 'k')

# 179. (y-1.3)**2=2.4*(x+4.62) {1.213<y<2.04}
y179 = np.linspace(1.213, 2.04, 100)
x179 = (y179 - 1.3) ** 2 / 2.4 - 4.62
plt.plot(x179, y179, 'k')

# 180. y=3x+15.06 {-4.687<x<-4.436}
x180 = np.linspace(-4.687, -4.436, 100)
y180 = 3 * x180 + 15.06
plt.plot(x180, y180, 'k')

# 181. y**2=6*(x+4.85) {0<y<1}
y181 = np.linspace(0, 1, 100)
x181 = y181 ** 2 / 6 - 4.85
plt.plot(x181, y181, 'k')

# 182. (y+0.2)**2=2*(x+4.87) {-0.3<y<0}
y182 = np.linspace(-0.3, 0, 100)
x182 = (y182 + 0.2) ** 2 / 2 - 4.87
plt.plot(x182, y182, 'k')

# 183. (y+1.4)^2 = 12(x+4.93) for -1.715 < y < -0.327
y183 = np.linspace(-1.715, -0.327, 100)
x183 = (y183 + 1.4) ** 2 / 12 - 4.93
plt.plot(x183, y183, 'k')

# 184. y + 1.56 = -0.5(x+4.3)^2 for -5.04 < x < -3.82
x184 = np.linspace(-5.04, -3.82, 100)
y184 = -0.5 * (x184 + 4.3) ** 2 - 1.56
plt.plot(x184, y184, 'k')

# 185. (y+2)^2 = -12(x+3.8) for -2.62 < y < -1.685
y185 = np.linspace(-2.62, -1.685, 100)
x185 = -3.8 - (y185 + 2) ** 2 / 12
plt.plot(x185, y185, 'k')

# 186. y + 2.69 = 2(x+4)^2 for -4 < x < -3.829
x186 = np.linspace(-4, -3.829, 100)
y186 = 2 * (x186 + 4) ** 2 - 2.69
plt.plot(x186, y186, 'k')

# 187. y = -2.69 for -4.097 < x < -4
x187 = np.linspace(-4.097, -4, 100)
y187 = np.full_like(x187, -2.69)
plt.plot(x187, y187, 'k')

# 188. y = -1.5x - 8.83 for -4.145 < x < -3.96
x188 = np.linspace(-4.145, -3.96, 100)
y188 = -1.5 * x188 - 8.83
plt.plot(x188, y188, 'k')

# 189. y = -6x - 32.1 for -2.76 < y < -1.83
y189 = np.linspace(-2.76, -1.83, 100)
x189 = (-y189 - 32.1) / -6
plt.plot(x189, y189, 'k')

# 190. y + 2.85 = 2.5(x+4.7)^2 for -4.89 < x < -4.6
x190 = np.linspace(-4.89, -4.6, 100)
y190 = 2.5 * (x190 + 4.7) ** 2 - 2.85
plt.plot(x190, y190, 'k')

# 191. y = 30(x+4.5) for -3.09 < y < -2.76
y191 = np.linspace(-3.09, -2.76, 100)
x191 = y191 / 30 - 4.5
plt.plot(x191, y191, 'k')

# 192. (y+2.8)^2 = 1.1(x+4.68) for -3.33 < y < -3.089
y192 = np.linspace(-3.33, -3.089, 100)
x192 = (y192 + 2.8) ** 2 / 1.1 - 4.68
plt.plot(x192, y192, 'k')

# 193. y = -x - 7.69 for -3.32 < y < -3.201
y193 = np.linspace(-3.32, -3.201, 100)
x193 = -y193 - 7.69
plt.plot(x193, y193, 'k')

# 194. y = 14(x+4.404)^2 - 3.335 for -4.425 < x < -4.371
x194 = np.linspace(-4.425, -4.371, 100)
y194 = 14 * (x194 + 4.404) ** 2 - 3.335
plt.plot(x194, y194, 'k')

# 195. y = -0.4x - 5.06 for -4.383 < x < -4.3
x195 = np.linspace(-4.383, -4.3, 100)
y195 = -0.4 * x195 - 5.06
plt.plot(x195, y195, 'k')

# 196. y = -x - 7.57 for -4.384 < x < -4.242
x196 = np.linspace(-4.384, -4.242, 100)
y196 = -x196 - 7.57
plt.plot(x196, y196, 'k')

# 197. y = 6(x+4.29)^2 - 3.34 for -4.3 < x < -4.243
x197 = np.linspace(-4.3, -4.243, 100)
y197 = 6 * (x197 + 4.29) ** 2 - 3.34
plt.plot(x197, y197, 'k')

# 198. y = 11(x+4.19)^2 - 3.36 for -4.244 < x < -4.14
x198 = np.linspace(-4.244, -4.14, 100)
y198 = 11 * (x198 + 4.19) ** 2 - 3.36
plt.plot(x198, y198, 'k')

# 199. y = -2x - 11.6 for -4.237 < x < -4.136
x199 = np.linspace(-4.237, -4.136, 100)
y199 = -2 * x199 - 11.6
plt.plot(x199, y199, 'k')

# 200. y = 3(x+4.06)^2 - 3.36 for -4.145 < x < -3.97
x200 = np.linspace(-4.145, -3.97, 100)
y200 = 3 * (x200 + 4.06) ** 2 - 3.36
plt.plot(x200, y200, 'k')

# 第一部分:顶部曲线
y201 = np.linspace(-3.335, -2.902, 100)
x201 = (y201 + 3) ** 2 - 4.08
plt.plot(x201, y201, 'k', linewidth=1.5)

x202 = np.linspace(-3.97, -3.91, 100)
y202 = 15 * (x202 + 3.97) ** 2 - 3.33
plt.plot(x202, y202, 'k', linewidth=1.5)

y203 = np.linspace(-3.287, -2.896, 100)
x203 = (y203 + 3) ** 2 / 2 - 3.958
plt.plot(x203, y203, 'k', linewidth=1.5)

# 第一部分:顶部曲线
y201 = np.linspace(-3.335, -2.902, 100)
x201 = (y201 + 3) ** 2 - 4.08
plt.plot(x201, y201, 'k', linewidth=1.5)

x202 = np.linspace(-3.97, -3.91, 100)
y202 = 15 * (x202 + 3.97) ** 2 - 3.33
plt.plot(x202, y202, 'k', linewidth=1.5)

y203 = np.linspace(-3.287, -2.896, 100)
x203 = (y203 + 3) ** 2 / 2 - 3.958
plt.plot(x203, y203, 'k', linewidth=1.5)

# 第二部分:左侧曲线
x204 = np.linspace(-4.59, -4.15, 100)
y204 = -0.76 * (x204 + 4.15) ** 2 - 2.61
plt.plot(x204, y204, 'k', linewidth=1.5)

x205 = np.linspace(-4.15, -3.83, 100)
y205 = -2.61 * np.ones_like(x205)
plt.plot(x205, y205, 'k', linewidth=1.5)

x206 = np.linspace(-5.019, -4.2, 100)
y206 = -0.37 * (x206 + 4.2) ** 2 - 1.74
plt.plot(x206, y206, 'k', linewidth=1.5)

x207 = np.linspace(-4.2, -3.801, 100)
y207 = -(x207 + 4.2) ** 2 - 1.74
plt.plot(x207, y207, 'k', linewidth=1.5)

x208 = np.linspace(-4.995, -4.24, 100)
y208 = -0.46 * (x208 + 4.24) ** 2 - 1.87
plt.plot(x208, y208, 'k', linewidth=1.5)

x209 = np.linspace(-4.24, -3.8, 100)
y209 = -0.7 * (x209 + 4.24) ** 2 - 1.87
plt.plot(x209, y209, 'k', linewidth=1.5)

# 第三部分:中上区域
y210 = np.linspace(-2.737, -1.4, 100)
x210 = (y210 + 1.7) ** 2 / 12 - 4.77
plt.plot(x210, y210, 'k', linewidth=1.5)

y211 = np.linspace(-2.754, -1.52, 100)
x211 = (y211 + 1.7) ** 2 / 12 - 4.73
plt.plot(x211, y211, 'k', linewidth=1.5)

y212 = np.linspace(-2.689, -1.5, 100)
x212 = (y212 + 1.5) ** 2 / 11 - 4.6
plt.plot(x212, y212, 'k', linewidth=1.5)

y213 = np.linspace(-2.667, -1.4, 100)
x213 = (y213 + 1.5) ** 2 / 11 - 4.56
plt.plot(x213, y213, 'k', linewidth=1.5)

x214 = np.linspace(-4.76, -4.56, 100)
y214 = -7 * (x214 + 4.66) ** 2 - 1.33
plt.plot(x214, y214, 'k', linewidth=1.5)

# 圆
theta = np.linspace(0, 2 * np.pi, 100)
x215 = 0.07 * np.cos(theta) - 4.67
y215 = 0.07 * np.sin(theta) - 1.47
plt.plot(x215, y215, 'k', linewidth=1.5)

# 小圆盘
x216 = np.linspace(-4.68, -4.67, 100)
y216 = np.linspace(-1.48, -1.46, 100)
X216, Y216 = np.meshgrid(x216, y216)
F16 = (X216 + 4.677) ** 2 + (Y216 + 1.47) ** 2
plt.contour(X216, Y216, F16, levels=[0.001], colors='k', linewidths=1.5)

# 第四部分:中部曲线
x217 = np.linspace(-4.396, -3.974, 100)
y217 = -2.4 * x217 - 10.73
plt.plot(x217, y217, 'k', linewidth=1.5)

y218 = np.linspace(-0.68, -0.09, 100)
x218 = (y218 + 0.2) ** 2 / 3 - 4.03
plt.plot(x218, y218, 'k', linewidth=1.5)

y219 = np.linspace(-1.649, -0.679, 100)
x219 = -(y219 + 2) ** 2 / 20 - 3.87
plt.plot(x219, y219, 'k', linewidth=1.5)

y220 = np.linspace(-0.679, -0.336, 100)
x220 = (y220 + 0.7) ** 2 / 8 - 3.95
plt.plot(x220, y220, 'k', linewidth=1.5)

y221 = np.linspace(-0.585, -0.322, 100)
x221 = -(y221 + 1.5) ** 2 / 4.4 - 3.36
plt.plot(x221, y221, 'k', linewidth=1.5)

y222 = np.linspace(-1.09, -0.34, 100)
x222 = -(y222 + 1.16) ** 2 / 2.7 - 3.36
plt.plot(x222, y222, 'k', linewidth=1.5)

y223 = np.linspace(-3.19, -1.8, 100)
x223 = -(y223 + 3.5) ** 2 / 13 - 3.43
plt.plot(x223, y223, 'k', linewidth=1.5)

# 直线段
y224 = np.linspace(-1.35, -1.14, 100)
x224 = (y224 + 23.76) / (-6)
plt.plot(x224, y224, 'k', linewidth=1.5)

y225 = np.linspace(-1.16, -0.427, 100)
x225 = y225 ** 2 / 4 - 3
plt.plot(x225, y225, 'k', linewidth=1.5)

y226 = np.linspace(-0.735, -0.48, 100)
x226 = (y226 + 14.6) / (-5)
plt.plot(x226, y226, 'k', linewidth=1.5)

y227 = np.linspace(-1.86, -1.284, 100)
x227 = (y227 + 6.47) / (-2)
plt.plot(x227, y227, 'k', linewidth=1.5)

y228 = np.linspace(-2.439, -1.854, 100)
x228 = (y228 + 1.2) ** 2 / 1.9 - 2.53
plt.plot(x228, y228, 'k', linewidth=1.5)

# 第五部分:右下区域
x229 = np.linspace(-1.731, -1.379, 100)
y229 = -0.9 * x229 - 4
plt.plot(x229, y229, 'k', linewidth=1.5)

x230 = np.linspace(-2.778, -2.552, 100)
y230 = -0.2 * x230 - 0.98
plt.plot(x230, y230, 'k', linewidth=1.5)

x231 = np.linspace(-2.81, -2.777, 100)
y231 = -2 * x231 - 5.98
plt.plot(x231, y231, 'k', linewidth=1.5)

y232 = np.linspace(-0.469, -0.243, 100)
x232 = -y232 ** 2 / 4 - 2.49
plt.plot(x232, y232, 'k', linewidth=1.5)

x233 = np.linspace(-2.42, -2.15, 100)
y233 = -0.4 * (x233 + 2.15) ** 2 - 0.17
plt.plot(x233, y233, 'k', linewidth=1.5)

x234 = np.linspace(-2.15, -2.074, 100)
y234 = -9 * (x234 + 2.15) ** 2 - 0.17
plt.plot(x234, y234, 'k', linewidth=1.5)

x235 = np.linspace(-2.16, -2.079, 100)
y235 = 7 * (x235 + 2.04) ** 2 - 0.13
plt.plot(x235, y235, 'k', linewidth=1.5)

x236 = np.linspace(-2.078, -2.02, 100)
y236 = -16 * (x236 + 2.1) ** 2 - 0.11
plt.plot(x236, y236, 'k', linewidth=1.5)

x237 = np.linspace(-2.584, -2.121, 100)
y237 = -2.17 * (x237 + 2.77) ** 2 - 0.4
plt.plot(x237, y237, 'k', linewidth=1.5)

x238 = np.linspace(-2.12, -1.85, 100)
y238 = -2 * (x238 + 2.93) ** 2
plt.plot(x238, y238, 'k', linewidth=1.5)

# 第六部分:中央区域
x239 = np.linspace(-4.03, -3.45, 100)
y239 = -0.7 * (x239 + 4) ** 2 - 2.77
plt.plot(x239, y239, 'k', linewidth=1.5)

x240 = np.linspace(-3.953, -3.441, 100)
y240 = -0.7 * (x240 + 4) ** 2 - 2.9
plt.plot(x240, y240, 'k', linewidth=1.5)

x241 = np.linspace(-3.956, -3.458, 100)
y241 = -0.7 * (x241 + 4) ** 2 - 3.06
plt.plot(x241, y241, 'k', linewidth=1.5)

y242 = np.linspace(-3.38, -3.19, 100)
x242 = -(y242 + 3.19) ** 2 / 0.2 - 3.438
plt.plot(x242, y242, 'k', linewidth=1.5)

x243 = np.linspace(-3.44, -2.2, 100)
y243 = 0.32 * (x243 + 3) ** 2 - 3.27
plt.plot(x243, y243, 'k', linewidth=1.5)

x244 = np.linspace(-1.665, -1.4, 100)
y244 = -(x244 + 1.4) ** 2 - 2.77
plt.plot(x244, y244, 'k', linewidth=1.5)

x245 = np.linspace(-2.2, -1.665, 100)
y245 = 0.43 * x245 - 2.124
plt.plot(x245, y245, 'k', linewidth=1.5)

x246 = np.linspace(-3.507, -2.32, 100)
y246 = 0.32 * (x246 + 3) ** 2 - 3.39
plt.plot(x246, y246, 'k', linewidth=1.5)

x247 = np.linspace(-1.617, -1.3, 100)
y247 = -0.7 * (x247 + 1.3) ** 2 - 2.88
plt.plot(x247, y247, 'k', linewidth=1.5)

x248 = np.linspace(-2.32, -1.618, 100)
y248 = 0.42 * x248 - 2.27
plt.plot(x248, y248, 'k', linewidth=1.5)

x249 = np.linspace(-3.625, -1.775, 100)
y249 = 0.23 * (x249 + 3) ** 2 - 3.51
plt.plot(x249, y249, 'k', linewidth=1.5)

x250 = np.linspace(-1.774, -1.26, 100)
y250 = -0.63 * (x250 + 1.26) ** 2 - 3
plt.plot(x250, y250, 'k', linewidth=1.5)

y251 = np.linspace(-3, -2.759, 100)
x251 = -(y251 + 3) ** 2 / 0.45 - 1.25
plt.plot(x251, y251, 'k', linewidth=1.5)

# 第七部分:右下曲线
x252 = np.linspace(-2.52, -1.574, 100)
y252 = 0.3 * (x252 + 2.52) ** 2 - 3.5
plt.plot(x252, y252, 'k', linewidth=1.5)

x253 = np.linspace(-1.574, -0.912, 100)
y253 = 0.5 * x253 - 2.447
plt.plot(x253, y253, 'k', linewidth=1.5)

x254 = np.linspace(-2.52, -1.956, 100)
y254 = 0.3 * (x254 + 2.52) ** 2 - 3.62
plt.plot(x254, y254, 'k', linewidth=1.5)

y255 = np.linspace(-3.05, -2.79, 100)
x255 = -(y255 + 2.9) ** 2 / 0.2 - 0.9
plt.plot(x255, y255, 'k', linewidth=1.5)

x256 = np.linspace(-1.953, -1.013, 100)
y256 = 0.28 * (x256 + 2.39) ** 2 - 3.58
plt.plot(x256, y256, 'k', linewidth=1.5)

y257 = np.linspace(-2.787, -2.16, 100)
x257 = -(y257 + 3.4) ** 2 / 1.8 - 0.75
plt.plot(x257, y257, 'k', linewidth=1.5)

y258 = np.linspace(-2.162, -1.643, 100)
x258 = (y258 + 1.3) ** 2 / 1.5 - 2.1
plt.plot(x258, y258, 'k', linewidth=1.5)

# 第八部分:底部曲线
x259 = np.linspace(-1.315, -1.05, 100)
y259 = 0.6 * x259 - 2.04
plt.plot(x259, y259, 'k', linewidth=1.5)

x260 = np.linspace(-1.257, -0.985, 100)
y260 = 0.7 * x260 - 2.06
plt.plot(x260, y260, 'k', linewidth=1.5)

x261 = np.linspace(-1.737, -1.38, 100)
y261 = 1.6 * (x261 + 1.38) ** 2 + 0.1
plt.plot(x261, y261, 'k', linewidth=1.5)

x262 = np.linspace(-1.857, -1.377, 100)
y262 = 1.3 * (x262 + 1.5) ** 2 + 0.078
plt.plot(x262, y262, 'k', linewidth=1.5)

x263 = np.linspace(-1.921, -1.51, 100)
y263 = -0.7 * x263 - 1.16
plt.plot(x263, y263, 'k', linewidth=1.5)

x264 = np.linspace(-1.745, -1.486, 100)
y264 = -0.8 * x264 - 1.24
plt.plot(x264, y264, 'k', linewidth=1.5)

# 小曲线
y265 = np.linspace(-0.102, -0.052, 100)
x265 = -(y265 + 0.07) ** 2 / 0.03 - 1.475
plt.plot(x265, y265, 'k', linewidth=1.5)

x266 = np.linspace(-2.02, -1.81, 100)
y266 = 1.5 * x266 + 2.82
plt.plot(x266, y266, 'k', linewidth=1.5)

x267 = np.linspace(-1.946, -1.736, 100)
y267 = 1.5 * x267 + 2.66
plt.plot(x267, y267, 'k', linewidth=1.5)

# 右侧曲线
y268 = np.linspace(-0.32, 0, 100)
x268 = (y268 - 2.64) / 1.6
plt.plot(x268, y268, 'k', linewidth=1.5)

x269 = np.linspace(-2.331, -2.01, 100)
y269 = 0.35 * x269 + 0.46
plt.plot(x269, y269, 'k', linewidth=1.5)

x270 = np.linspace(-2.405, -1.85, 100)
y270 = 0.4 * x270 + 0.42
plt.plot(x270, y270, 'k', linewidth=1.5)

x271 = np.linspace(-2.01, -1.858, 100)
y271 = -4 * (x271 + 2) ** 2 - 0.243
plt.plot(x271, y271, 'k', linewidth=1.5)

x272 = np.linspace(-1.856, -1.72, 100)
y272 = 0.1 * x272 - 0.137
plt.plot(x272, y272, 'k', linewidth=1.5)

x273 = np.linspace(-1.72, -1.455, 100)
y273 = -0.6 * x273 - 1.34
plt.plot(x273, y273, 'k', linewidth=1.5)

# 复杂曲线组
x274 = np.linspace(-1.914, -1.458, 100)
y274 = -2.6 * (x274 + 1.3) ** 2 - 0.4
plt.plot(x274, y274, 'k', linewidth=1.5)

x275 = np.linspace(-1.46, -1.228, 100)
y275 = -3.9 * (x275 + 1.357) ** 2 - 0.42
plt.plot(x275, y275, 'k', linewidth=1.5)

x276 = np.linspace(-1.788, -1.239, 100)
y276 = -2.7 * (x276 + 1.18) ** 2 - 0.47
plt.plot(x276, y276, 'k', linewidth=1.5)

x277 = np.linspace(-1.23, -1.152, 100)
y277 = -12 * (x277 + 1.23) ** 2 - 0.48
plt.plot(x277, y277, 'k', linewidth=1.5)

x278 = np.linspace(-1.673, -1.156, 100)
y278 = -2.8 * (x278 + 1.08) ** 2 - 0.53
plt.plot(x278, y278, 'k', linewidth=1.5)

x279 = np.linspace(-2.13, -1.912, 100)
y279 = -0.4 * x279 - 2.14
plt.plot(x279, y279, 'k', linewidth=1.5)

y280 = np.linspace(-1.474, -1.37, 100)
x280 = (y280 + 1.37) ** 2 / 0.09 - 1.91
plt.plot(x280, y280, 'k', linewidth=1.5)

x281 = np.linspace(-1.79, -1.11, 100)
y281 = -0.4 * x281 - 2.19
plt.plot(x281, y281, 'k', linewidth=1.5)

x282 = np.linspace(-1.154, -1.051, 100)
y282 = -9 * (x282 + 1.129) ** 2 - 0.543
plt.plot(x282, y282, 'k', linewidth=1.5)

x283 = np.linspace(-1.05, -0.752, 100)
y283 = -0.45 * x283 - 1.07
plt.plot(x283, y283, 'k', linewidth=1.5)

x284 = np.linspace(-0.754, -0.69, 100)
y284 = -28 * (x284 + 0.76) ** 2 - 0.73
plt.plot(x284, y284, 'k', linewidth=1.5)

x285 = np.linspace(-1.064, -0.77, 100)
y285 = -5.6 * (x285 + 0.66) ** 2 - 0.77
plt.plot(x285, y285, 'k', linewidth=1.5)

x286 = np.linspace(-1.018, -0.845, 100)
y286 = 5 * (x286 + 1.16) ** 2 - 1.8
plt.plot(x286, y286, 'k', linewidth=1.5)

x287 = np.linspace(-1.11, -1.018, 100)
y287 = 9 * (x287 + 1.093) ** 2 - 1.75
plt.plot(x287, y287, 'k', linewidth=1.5)

# 第九部分:右上角结构
x288 = np.linspace(2.14, 2.48, 100)
y288 = -(x288 - 2.48) ** 2 + 1.28
plt.plot(x288, y288, 'k', linewidth=1.5)

x289 = np.linspace(2.7, 3.21, 100)
y289 = -1.4 * (x289 - 2.7) ** 2 + 1.28
plt.plot(x289, y289, 'k', linewidth=1.5)

x290 = np.linspace(2.48, 2.7, 100)
y290 = 1.28 * np.ones_like(x290)
plt.plot(x290, y290, 'k', linewidth=1.5)

x291 = np.linspace(3.21, 3.52, 100)
y291 = 1.9 * (x291 - 3.54) ** 2 + 0.71
plt.plot(x291, y291, 'k', linewidth=1.5)

x292 = np.linspace(3.365, 3.52, 100)
y292 = 0.3 * (x292 - 3.52) ** 2 + 0.71
plt.plot(x292, y292, 'k', linewidth=1.5)

x293 = np.linspace(3.362, 3.558, 100)
y293 = -x293 + 4.08
plt.plot(x293, y293, 'k', linewidth=1.5)

x294 = np.linspace(3.4, 3.558, 100)
y294 = 1.7 * (x294 - 3.4) ** 2 + 0.48
plt.plot(x294, y294, 'k', linewidth=1.5)

y295 = np.linspace(0.37, 0.48, 100)
x295 = 3.876 - y295
plt.plot(x295, y295, 'k', linewidth=1.5)

x296 = np.linspace(3.394, 3.502, 100)
y296 = -0.35 * x296 + 1.6
plt.plot(x296, y296, 'k', linewidth=1.5)

y297 = np.linspace(0.259, 0.413, 100)
x297 = 3.394 * np.ones_like(y297)
plt.plot(x297, y297, 'k', linewidth=1.5)

y298 = np.linspace(0.262, 0.36, 100)
x298 = (7.05 - y298) / 2
plt.plot(x298, y298, 'k', linewidth=1.5)

y299 = np.linspace(-0.108, 0.361, 100)
x299 = 3.343 * np.ones_like(y299)
plt.plot(x299, y299, 'k', linewidth=1.5)

y300 = np.linspace(-0.225, -0.107, 100)
x300 = y300 ** 2 / 0.8 + 3.33
plt.plot(x300, y300, 'k', linewidth=1.5)

# 301. y = -(x-2.2)^2 + 1.17 {1.49<x<2.143}
x301 = np.linspace(1.49, 2.143, 100)
y301 = -(x301 - 2.2) ** 2 + 1.17
plt.plot(x301, y301, 'k')

# 302. y^2 = 2.1(x-1.28) {0<y<0.682}
y302 = np.linspace(0, 0.682, 100)
x302 = y302 ** 2 / 2.1 + 1.28
plt.plot(x302, y302, 'k')

# 303. y^2 = -11(x-1.28) {-0.469<y<0}
y303 = np.linspace(-0.469, 0, 100)
x303 = 1.28 - y303 ** 2 / 11
plt.plot(x303, y303, 'k')

# 304. y^2 = -1.9(x-1.38) {-0.472<y<-0.063}
y304 = np.linspace(-0.472, -0.063, 100)
x304 = 1.38 - y304 ** 2 / 1.9
plt.plot(x304, y304, 'k')

# 305. (y+0.07)^2 = 1.4(x-1.39) {-0.545<y<-0.07}
y305 = np.linspace(-0.545, -0.07, 100)
x305 = (y305 + 0.07) ** 2 / 1.4 + 1.39
plt.plot(x305, y305, 'k')

# 306. y = -9x + 13.4 {-0.542<y<-0.37}
y306 = np.linspace(-0.542, -0.37, 100)
x306 = (13.4 - y306) / 9
plt.plot(x306, y306, 'k')

# 307. y = 5.4(x-1.7)^2 - 0.52 {1.53<x<1.678}
x307 = np.linspace(1.53, 1.678, 100)
y307 = 5.4 * (x307 - 1.7) ** 2 - 0.52
plt.plot(x307, y307, 'k')

# 308. y = -15x + 24.6 {-0.516<y<-0.357}
y308 = np.linspace(-0.516, -0.357, 100)
x308 = (24.6 - y308) / 15
plt.plot(x308, y308, 'k')

# 309. y = -0.8x + 0.97 {1.664<x<1.765}
x309 = np.linspace(1.664, 1.765, 100)
y309 = -0.8 * x309 + 0.97
plt.plot(x309, y309, 'k')

# 310. y = -2x + 3.1 {1.71<x<1.771}
x310 = np.linspace(1.71, 1.771, 100)
y310 = -2 * x310 + 3.1
plt.plot(x310, y310, 'k')

# 311. (y-0.04)^2 = 0.65(x-1.51) {-0.321<y<0}
y311 = np.linspace(-0.321, 0, 100)
x311 = (y311 - 0.04) ** 2 / 0.65 + 1.51
plt.plot(x311, y311, 'k')

# 312. (y-0.1)^2 = 1.1(x-1.64) {-0.262<y<0.058}
y312 = np.linspace(-0.262, 0.058, 100)
x312 = (y312 - 0.1) ** 2 / 1.1 + 1.64
plt.plot(x312, y312, 'k')

# 313. y = -10x + 16.47 {0.059<y<0.553}
y313 = np.linspace(0.059, 0.553, 100)
x313 = (16.47 - y313) / 10
plt.plot(x313, y313, 'k')

# 314. y = -13x + 21.93 {-0.323<y<-0.154}
y314 = np.linspace(-0.323, -0.154, 100)
x314 = (21.93 - y314) / 13
plt.plot(x314, y314, 'k')

# 315. x = 1.763 {-0.263<y<0}
y315 = np.linspace(-0.263, 0, 100)
x315 = np.full_like(y315, 1.763)
plt.plot(x315, y315, 'k')

# 316. y = 4(x-2)^2 - 0.22 {1.765<x<1.983}
x316 = np.linspace(1.765, 1.983, 100)
y316 = 4 * (x316 - 2) ** 2 - 0.22
plt.plot(x316, y316, 'k')

# 317. (y-0.1)^2 = 2.1(x-1.93) {-0.218<y<0.225}
y317 = np.linspace(-0.218, 0.225, 100)
x317 = (y317 - 0.1) ** 2 / 2.1 + 1.93
plt.plot(x317, y317, 'k')

# 318. (y-0.7)^2 = 1.7(x-1.83) {0.09<y<0.803}
y318 = np.linspace(0.09, 0.803, 100)
x318 = (y318 - 0.7) ** 2 / 1.7 + 1.83
plt.plot(x318, y318, 'k')

# 319. y = -7(x-2.03)^2 + 1.1 {1.854<x<1.929}
x319 = np.linspace(1.854, 1.929, 100)
y319 = -7 * (x319 - 2.03) ** 2 + 1.1
plt.plot(x319, y319, 'k')

# 320. y = -17(x-2)^2 + 0.133 {2.049<x<2.116}
x320 = np.linspace(2.049, 2.116, 100)
y320 = -17 * (x320 - 2) ** 2 + 0.133
plt.plot(x320, y320, 'k')

# 321. y = 29(x-2.17)^2 - 0.18 {2.116<x<2.17}
x321 = np.linspace(2.116, 2.17, 100)
y321 = 29 * (x321 - 2.17) ** 2 - 0.18
plt.plot(x321, y321, 'k')

# 322. y = 15x - 32.7 {2.168<x<2.183}
x322 = np.linspace(2.168, 2.183, 100)
y322 = 15 * x322 - 32.7
plt.plot(x322, y322, 'k')

# 323. y = 3.1(x-2.5)^2 - 0.26 {2.184<x<2.48}
x323 = np.linspace(2.184, 2.48, 100)
y323 = 3.1 * (x323 - 2.5) ** 2 - 0.26
plt.plot(x323, y323, 'k')

# 324. y^2 = -(x-2.497) {-0.126<y<0.116}
y324 = np.linspace(-0.126, 0.116, 100)
x324 = 2.497 - y324 ** 2
plt.plot(x324, y324, 'k')

# 325. y = 30x - 74.6 {-0.258<y<-0.125}
y325 = np.linspace(-0.258, -0.125, 100)
x325 = (74.6 + y325) / 30
plt.plot(x325, y325, 'k')

# 326. y = 2.1x - 2.55 {1.1<x<1.293}
x326 = np.linspace(1.1, 1.293, 100)
y326 = 2.1 * x326 - 2.55
plt.plot(x326, y326, 'k')

# 327. y = -x + 2.59 {2.486<x<2.574}
x327 = np.linspace(2.486, 2.574, 100)
y327 = -x327 + 2.59
plt.plot(x327, y327, 'k')

# 328. y = 5(x-2.42)^2 + 0.58 {2.202<x<2.327}
x328 = np.linspace(2.202, 2.327, 100)
y328 = 5 * (x328 - 2.42) ** 2 + 0.58
plt.plot(x328, y328, 'k')

# 329. y = -6(x-2.27)^2 + 0.642 {2.327<x<2.52}
x329 = np.linspace(2.327, 2.52, 100)
y329 = -6 * (x329 - 2.27) ** 2 + 0.642
plt.plot(x329, y329, 'k')

# 330. y = -8x + 20.47 {0.035<y<0.27}
y330 = np.linspace(0.035, 0.27, 100)
x330 = (20.47 - y330) / 8
plt.plot(x330, y330, 'k')

# 331. y = -4.2(x-2.18)^2 + 0.64 {2.27<x<2.4}
x331 = np.linspace(2.27, 2.4, 100)
y331 = -4.2 * (x331 - 2.18) ** 2 + 0.64
plt.plot(x331, y331, 'k')

# 332. y = -1.5x + 4.14 {2.079<x<2.13}
x332 = np.linspace(2.079, 2.13, 100)
y332 = -1.5 * x332 + 4.14
plt.plot(x332, y332, 'k')

# 333. y = -2.1(x-2.14)^2 + 0.9 {2.337<x<2.657}
x333 = np.linspace(2.337, 2.657, 100)
y333 = -2.1 * (x333 - 2.14) ** 2 + 0.9
plt.plot(x333, y333, 'k')

# 334. y = -3x + 8.31 {2.656<x<2.75}
x334 = np.linspace(2.656, 2.75, 100)
y334 = -3 * x334 + 8.31
plt.plot(x334, y334, 'k')

# 335. y = -0.9(x-2.5)^2 + 0.36 {2.657<x<2.943}
x335 = np.linspace(2.657, 2.943, 100)
y335 = -0.9 * (x335 - 2.5) ** 2 + 0.36
plt.plot(x335, y335, 'k')

# 336. y = -1.3(x-2.5)^2 + 0.7 {2.765<x<3.074}
x336 = np.linspace(2.765, 3.074, 100)
y336 = -1.3 * (x336 - 2.5) ** 2 + 0.7
plt.plot(x336, y336, 'k')

# 337. y = -1.2x + 4.06 {3<x<3.154}
x337 = np.linspace(3, 3.154, 100)
y337 = -1.2 * x337 + 4.06
plt.plot(x337, y337, 'k')

# 338. y = -0.6x + 2.17 {3<x<3.15}
x338 = np.linspace(3, 3.15, 100)
y338 = -0.6 * x338 + 2.17
plt.plot(x338, y338, 'k')

# 339. y = 0.8(x-3.3)^2 + 0.39 {3<x<3.273}
x339 = np.linspace(3, 3.273, 100)
y339 = 0.8 * (x339 - 3.3) ** 2 + 0.39
plt.plot(x339, y339, 'k')

# 340. y = -1.5(x-2.6)^2 + 1.13 {2.657<x<3.138}
x340 = np.linspace(2.657, 3.138, 100)
y340 = -1.5 * (x340 - 2.6) ** 2 + 1.13
plt.plot(x340, y340, 'k')

# 341. y = 4.1(x-3.32)^2 + 0.56 {3.137<x<3.32}
x341 = np.linspace(3.137, 3.32, 100)
y341 = 4.1 * (x341 - 3.32) ** 2 + 0.56
plt.plot(x341, y341, 'k')

# 342. y = 0.56 {3.186<x<3.32}
x342 = np.linspace(3.186, 3.32, 100)
y342 = np.full_like(x342, 0.56)
plt.plot(x342, y342, 'k')

# 343. y = -1.4x + 5.02 {3.1<x<3.232}
x343 = np.linspace(3.1, 3.232, 100)
y343 = -1.4 * x343 + 5.02
plt.plot(x343, y343, 'k')

# 344. y = -x + 3.16 {3.308<x<3.397}
x344 = np.linspace(3.308, 3.397, 100)
y344 = -x344 + 3.16
plt.plot(x344, y344, 'k')

# 345. y = 8x - 26.59 {3.292<x<3.305}
x345 = np.linspace(3.292, 3.305, 100)
y345 = 8 * x345 - 26.59
plt.plot(x345, y345, 'k')

# 346. y = -x + 3.03 {3.184<x<3.286}
x346 = np.linspace(3.184, 3.286, 100)
y346 = -x346 + 3.03
plt.plot(x346, y346, 'k')

# 347. y = -1.5x + 4.54 {3.118<x<3.218}
x347 = np.linspace(3.118, 3.218, 100)
y347 = -1.5 * x347 + 4.54
plt.plot(x347, y347, 'k')

# 348. y = -0.256 {3.197<x<3.286}
x348 = np.linspace(3.197, 3.286, 100)
y348 = np.full_like(x348, -0.256)
plt.plot(x348, y348, 'k')

# 349. y = 1.8(x-3.22)^2 - 0.292 {3.04<x<3.22}
x349 = np.linspace(3.04, 3.22, 100)
y349 = 1.8 * (x349 - 3.22) ** 2 - 0.292
plt.plot(x349, y349, 'k')

# 350. y = -0.8x + 2.16 {2.897<x<3.102}
x350 = np.linspace(2.897, 3.102, 100)
y350 = -0.8 * x350 + 2.16
plt.plot(x350, y350, 'k')

# 351. y = -1.5x + 4.33 {3.04<x<3.1}
x351 = np.linspace(3.04, 3.1, 100)
y351 = -1.5 * x351 + 4.33
plt.plot(x351, y351, 'k')

# 352. y = -(x-2.45)^2 {2.697<x<3}
x352 = np.linspace(2.697, 3, 100)
y352 = -(x352 - 2.45) ** 2
plt.plot(x352, y352, 'k')

# 353. y = -2x + 5.67 {2.925<x<2.97}
x353 = np.linspace(2.925, 2.97, 100)
y353 = -2 * x353 + 5.67
plt.plot(x353, y353, 'k')

# 354. y = -x + 2.77 {-0.058<y<0}
y354 = np.linspace(-0.058, 0, 100)
x354 = 2.77 - y354
plt.plot(x354, y354, 'k')

# 355. y = -0.5x + 1.44 {2.814<x<2.952}
x355 = np.linspace(2.814, 2.952, 100)
y355 = -0.5 * x355 + 1.44
plt.plot(x355, y355, 'k')

# 356. y = -0.5x + 1.49 {2.887<x<2.992}
x356 = np.linspace(2.887, 2.992, 100)
y356 = -0.5 * x356 + 1.49
plt.plot(x356, y356, 'k')

# 357. y = -0.5x + 1.59 {3.028<x<3.097}
x357 = np.linspace(3.028, 3.097, 100)
y357 = -0.5 * x357 + 1.59
plt.plot(x357, y357, 'k')

# 358. y = -1.5x + 4.18 {2.537<x<2.747}
x358 = np.linspace(2.537, 2.747, 100)
y358 = -1.5 * x358 + 4.18
plt.plot(x358, y358, 'k')

# 359. y = -4(x-2.48)^2 + 0.29 {2.513<x<2.695}
x359 = np.linspace(2.513, 2.695, 100)
y359 = -4 * (x359 - 2.48) ** 2 + 0.29
plt.plot(x359, y359, 'k')

# 360. x = 2.695 {-0.18<y<0.105}
y360 = np.linspace(-0.18, 0.105, 100)
x360 = np.full_like(y360, 2.695)
plt.plot(x360, y360, 'k')

# 361. y = x - 2.88 {2.607<x<2.695}
x361 = np.linspace(2.607, 2.695, 100)
y361 = x361 - 2.88
plt.plot(x361, y361, 'k')

# 362. y = -3x + 7.55 {2.607<x<2.675}
x362 = np.linspace(2.607, 2.675, 100)
y362 = -3 * x362 + 7.55
plt.plot(x362, y362, 'k')

# 363. y^2 = -0.1(x-2.62) {0<y<0.083}
y363 = np.linspace(0, 0.083, 100)
x363 = 2.62 - y363 ** 2 / 0.1
plt.plot(x363, y363, 'k')

# 364. y^2 = -0.56(x-2.62) {-0.17<y<0}
y364 = np.linspace(-0.17, 0, 100)
x364 = 2.62 - y364 ** 2 / 0.56
plt.plot(x364, y364, 'k')

# 365. y = -8(x-2.5)^2 - 0.01 {2.5<x<2.547}
x365 = np.linspace(2.5, 2.547, 100)
y365 = -8 * (x365 - 2.5) ** 2 - 0.01
plt.plot(x365, y365, 'k')

# 366. (y+0.05)^2 = -0.07(x-2.554) {-0.097<y<-0.027}
y366 = np.linspace(-0.097, -0.027, 100)
x366 = 2.554 - (y366 + 0.05) ** 2 / 0.07
plt.plot(x366, y366, 'k')

# 367. y = -1.1(x-2.1)^2 + 0.11 {1.622<x<2.037}
x367 = np.linspace(1.622, 2.037, 100)
y367 = -1.1 * (x367 - 2.1) ** 2 + 0.11
plt.plot(x367, y367, 'k')

# 368. y = 0.8x - 3 {2.68<x<3.413}
x368 = np.linspace(2.68, 3.413, 100)
y368 = 0.8 * x368 - 3
plt.plot(x368, y368, 'k')

# 369. y = 0.85x - 3.095 {2.34<x<2.66}
x369 = np.linspace(2.34, 2.66, 100)
y369 = 0.85 * x369 - 3.095
plt.plot(x369, y369, 'k')

# 370. y = -1.5x + 4.86 {3.398<x<3.418}
x370 = np.linspace(3.398, 3.418, 100)
y370 = -1.5 * x370 + 4.86
plt.plot(x370, y370, 'k')

# 371. y = -x + 1.83 {2.662<x<2.683}
x371 = np.linspace(2.662, 2.683, 100)
y371 = -x371 + 1.83
plt.plot(x371, y371, 'k')

# 372. y = 6(x-2.29)^2 - 1.123 {2.15<x<2.34}
x372 = np.linspace(2.15, 2.34, 100)
y372 = 6 * (x372 - 2.29) ** 2 - 1.123
plt.plot(x372, y372, 'k')

# 373. y = -2x + 3.295 {2.123<x<2.151}
x373 = np.linspace(2.123, 2.151, 100)
y373 = -2 * x373 + 3.295
plt.plot(x373, y373, 'k')

# 374. y = 12(x-2.12)^2 - 0.95 {2.04<x<2.123}
x374 = np.linspace(2.04, 2.123, 100)
y374 = 12 * (x374 - 2.12) ** 2 - 0.95
plt.plot(x374, y374, 'k')

# 375. y = -0.873 {1.969<x<2.04}
x375 = np.linspace(1.969, 2.04, 100)
y375 = np.full_like(x375, -0.873)
plt.plot(x375, y375, 'k')

# 376. y = -11.6(x-1.87)^2 - 0.76 {1.87<x<1.969}
x376 = np.linspace(1.87, 1.969, 100)
y376 = -11.6 * (x376 - 1.87) ** 2 - 0.76
plt.plot(x376, y376, 'k')

# 377. y = -0.05x - 0.667 {1.734<x<1.87}
x377 = np.linspace(1.734, 1.87, 100)
y377 = -0.05 * x377 - 0.667
plt.plot(x377, y377, 'k')

# 378. (y+0.7)^2 = 0.08(x-1.7) {-0.753<y<-0.7}
y378 = np.linspace(-0.753, -0.7, 100)
x378 = (y378 + 0.7) ** 2 / 0.08 + 1.7
plt.plot(x378, y378, 'k')

# 379. (y+0.4)^2 = -(x-1.78) {-0.68<y<-0.443}
y379 = np.linspace(-0.68, -0.443, 100)
x379 = 1.78 - (y379 + 0.4) ** 2
plt.plot(x379, y379, 'k')

# 380. y = 20x - 34.71 {-0.7<y<-0.68}
y380 = np.linspace(-0.7, -0.68, 100)
x380 = (34.71 + y380) / 20
plt.plot(x380, y380, 'k')

# 381. y^2 = -1.62(x-2.49) {-0.873<y<-0.69}
y381 = np.linspace(-0.873, -0.69, 100)
x381 = 2.49 - y381 ** 2 / 1.62
plt.plot(x381, y381, 'k')

# 382. y = 0.8x - 1.7 {1.774<x<1.876}
x382 = np.linspace(1.774, 1.876, 100)
y382 = 0.8 * x382 - 1.7
plt.plot(x382, y382, 'k')

# 383. y = x - 2.16 {1.871<x<1.919}
x383 = np.linspace(1.871, 1.919, 100)
y383 = x383 - 2.16
plt.plot(x383, y383, 'k')

# 384. y = 0.7x - 1.6 {1.817<x<1.84}
x384 = np.linspace(1.817, 1.84, 100)
y384 = 0.7 * x384 - 1.6
plt.plot(x384, y384, 'k')

# 385. y = -10x + 18.23 {1.859<x<1.866}
x385 = np.linspace(1.859, 1.866, 100)
y385 = -10 * x385 + 18.23
plt.plot(x385, y385, 'k')

# 386. y = 0.7x - 1.67 {1.859<x<1.907}
x386 = np.linspace(1.859, 1.907, 100)
y386 = 0.7 * x386 - 1.67
plt.plot(x386, y386, 'k')

# 387. y = 1.1x - 2.4 {1.858<x<1.982}
x387 = np.linspace(1.858, 1.982, 100)
y387 = 1.1 * x387 - 2.4
plt.plot(x387, y387, 'k')

# 388. y = -0.6x + 0.76 {1.869<x<1.895}
x388 = np.linspace(1.869, 1.895, 100)
y388 = -0.6 * x388 + 0.76
plt.plot(x388, y388, 'k')

# 389. y = 0.9x - 3.38 {2.729<x<3.454}
x389 = np.linspace(2.729, 3.454, 100)
y389 = 0.9 * x389 - 3.38
plt.plot(x389, y389, 'k')

# 390. y = -x + 1.8 {2.692<x<2.824}
x390 = np.linspace(2.692, 2.824, 100)
y390 = -x390 + 1.8
plt.plot(x390, y390, 'k')

# 391. y = -x + 1.75 {2.651<x<2.807}
x391 = np.linspace(2.651, 2.807, 100)
y391 = -x391 + 1.75
plt.plot(x391, y391, 'k')

# 392. y = x - 3.74 {2.77<x<3.46}
x392 = np.linspace(2.77, 3.46, 100)
y392 = x392 - 3.74
plt.plot(x392, y392, 'k')

# 393. y = 1.2x - 4.4 {2.818<x<3.3}
x393 = np.linspace(2.818, 3.3, 100)
y393 = 1.2 * x393 - 4.4
plt.plot(x393, y393, 'k')

# 394. y = 0.7x - 2.657 {3.478<x<3.78}
x394 = np.linspace(3.478, 3.78, 100)
y394 = 0.7 * x394 - 2.657
plt.plot(x394, y394, 'k')

# 395. y = 13(x-3.436)^2 - 0.25 {3.39<x<3.486}
x395 = np.linspace(3.39, 3.486, 100)
y395 = 13 * (x395 - 3.436) ** 2 - 0.25
plt.plot(x395, y395, 'k')

# 396. y = -1.5x + 5.75 {3.923<x<4.072}
x396 = np.linspace(3.923, 4.072, 100)
y396 = -1.5 * x396 + 5.75
plt.plot(x396, y396, 'k')

# 397. y = -3(x-3.7)^2 + 0.01 {3.78<x<3.92}
x397 = np.linspace(3.78, 3.92, 100)
y397 = -3 * (x397 - 3.7) ** 2 + 0.01
plt.plot(x397, y397, 'k')

# 398. y = -0.25(x-4.6)^2 - 0.3 {3.878<x<4.6}
x398 = np.linspace(3.878, 4.6, 100)
y398 = -0.25 * (x398 - 4.6) ** 2 - 0.3
plt.plot(x398, y398, 'k')

# 399. y = -0.6(x-4.24)^2 - 0.35 {3.23<x<3.877}
x399 = np.linspace(3.23, 3.877, 100)
y399 = -0.6 * (x399 - 4.24) ** 2 - 0.35
plt.plot(x399, y399, 'k')

# 400. y = 2.1x - 7.74 {2.8<x<3.228}
x400 = np.linspace(2.8, 3.228, 100)
y400 = 2.1 * x400 - 7.74
plt.plot(x400, y400, 'k')

# 第一部分:右上区域
y401 = np.linspace(-1.565, -0.963, 100)
x401 = (y401 + 1.6) ** 2 / 3 + 2.94
plt.plot(x401, y401, 'k', linewidth=1.5)

y402 = np.linspace(-1.944, -1.5, 100)
x402 = (y402 + 1.5) ** 2 / 1.8 + 2.61
plt.plot(x402, y402, 'k', linewidth=1.5)

y403 = np.linspace(-1.5, -1.06, 100)
x403 = (y403 + 1.5) ** 2 / 0.94 + 2.61
plt.plot(x403, y403, 'k', linewidth=1.5)

y404 = np.linspace(-2.015, -1.51, 100)
x404 = (y404 + 1.73) ** 2 / 1.2 + 2.57
plt.plot(x404, y404, 'k', linewidth=1.5)

# 第二部分:右侧曲线
x405 = np.linspace(3.256, 3.715, 100)
y405 = x405 - 4.59
plt.plot(x405, y405, 'k', linewidth=1.5)

x406 = np.linspace(2.761, 3.255, 100)
y406 = 1.2 * x406 - 5.24
plt.plot(x406, y406, 'k', linewidth=1.5)

x407 = np.linspace(2.57, 2.762, 100)
y407 = 0.8 * x407 - 4.135
plt.plot(x407, y407, 'k', linewidth=1.5)

x408 = np.linspace(3.794, 4.853, 100)
y408 = -0.27 * (x408 - 4.456) ** 2 - 0.7
plt.plot(x408, y408, 'k', linewidth=1.5)

# 第三部分:右上角小结构
y409 = np.linspace(-0.513, -0.378, 100)
x409 = (41.4 - y409) / 9
plt.plot(x409, y409, 'k', linewidth=1.5)

x410 = np.linspace(4.6, 4.642, 100)
y410 = -45 * (x410 - 4.6) ** 2 - 0.3
plt.plot(x410, y410, 'k', linewidth=1.5)

x411 = np.linspace(4.653, 4.86, 100)
y411 = -x411 + 4.13
plt.plot(x411, y411, 'k', linewidth=1.5)

x412 = np.linspace(4.85, 5.29, 100)
y412 = -0.7 * (x412 - 4.9) ** 2 - 0.74
plt.plot(x412, y412, 'k', linewidth=1.5)

y413 = np.linspace(-1.15, -0.85, 100)
x413 = (52.1 - y413) / 10
plt.plot(x413, y413, 'k', linewidth=1.5)

x414 = np.linspace(5.323, 5.4, 100)
y414 = -5 * (x414 - 5.3) ** 2 - 1.15
plt.plot(x414, y414, 'k', linewidth=1.5)

y415 = np.linspace(-1.368, -1.2, 100)
x415 = -(y415 + 1.293) ** 2 / 0.17 + 5.45
plt.plot(x415, y415, 'k', linewidth=1.5)

y416 = np.linspace(-2.077, -1.361, 100)
x416 = (6.23 - y416) / 1.4
plt.plot(x416, y416, 'k', linewidth=1.5)

# 第四部分:右侧长曲线
x417 = np.linspace(5.938, 6.69, 100)
y417 = -2 * x417 + 9.8
plt.plot(x417, y417, 'k', linewidth=1.5)

x418 = np.linspace(6.688, 7.24, 100)
y418 = -1.2 * x418 + 4.45
plt.plot(x418, y418, 'k', linewidth=1.5)

x419 = np.linspace(7.24, 8.3, 100)
y419 = 0.53 * (x419 - 8.4) ** 2 - 4.94
plt.plot(x419, y419, 'k', linewidth=1.5)

# 第五部分:中部曲线
y420 = np.linspace(-2.143, -1.037, 100)
x420 = (y420 + 2.3) ** 2 / 1.2 + 3.13
plt.plot(x420, y420, 'k', linewidth=1.5)

x421 = np.linspace(3.731, 5.431, 100)
y421 = -0.14 * (x421 - 4.76) ** 2 - 1.31
plt.plot(x421, y421, 'k', linewidth=1.5)

y422 = np.linspace(-2.438, -1.724, 100)
x422 = (y422 + 3) ** 2 / 0.9 + 2.4
plt.plot(x422, y422, 'k', linewidth=1.5)

x423 = np.linspace(2.563, 2.757, 100)
y423 = -1.8 * x423 + 2.53
plt.plot(x423, y423, 'k', linewidth=1.5)

x424 = np.linspace(4.48, 5, 100)
y424 = -0.8 * (x424 - 4.1) ** 2 - 1.2
plt.plot(x424, y424, 'k', linewidth=1.5)

x425 = np.linspace(5.068, 5.734, 100)
y425 = -0.8 * (x425 - 4.1) ** 2 - 1.2
plt.plot(x425, y425, 'k', linewidth=1.5)

# 第六部分:左下区域
x426 = np.linspace(2.744, 3.954, 100)
y426 = 0.25 * x426 - 3.14
plt.plot(x426, y426, 'k', linewidth=1.5)

y427 = np.linspace(-2.56, -2.455, 100)
x427 = (y427 + 2.56) ** 2 / 0.13 + 2.66
plt.plot(x427, y427, 'k', linewidth=1.5)

y428 = np.linspace(-2.917, -2.56, 100)
x428 = (y428 + 2.56) ** 2 / 2 + 2.66
plt.plot(x428, y428, 'k', linewidth=1.5)

x429 = np.linspace(2.793, 3.035, 100)
y429 = -1.5 * x429 + 1.4
plt.plot(x429, y429, 'k', linewidth=1.5)

x430 = np.linspace(3.78, 4.35, 100)
y430 = -0.9 * x430 + 0.34
plt.plot(x430, y430, 'k', linewidth=1.5)

x431 = np.linspace(4.484, 5.94, 100)
y431 = -0.8 * x431 - 0.15
plt.plot(x431, y431, 'k', linewidth=1.5)

x432 = np.linspace(5.883, 6.62, 100)
y432 = -1.8 * x432 + 7
plt.plot(x432, y432, 'k', linewidth=1.5)

x433 = np.linspace(6.677, 7.404, 100)
y433 = -1.8 * x433 + 8.4
plt.plot(x433, y433, 'k', linewidth=1.5)

# 第七部分:左下抛物线
y434 = np.linspace(-4.936, -3.345, 100)
x434 = y434 ** 2 / 9 + 1.9
plt.plot(x434, y434, 'k', linewidth=1.5)

y435 = np.linspace(-3, -2.635, 100)
x435 = (y435 + 3) ** 2 + 2.53
plt.plot(x435, y435, 'k', linewidth=1.5)

y436 = np.linspace(-3.426, -3, 100)
x436 = (y436 + 3) ** 2 / 7 + 2.53
plt.plot(x436, y436, 'k', linewidth=1.5)

# 第八部分:中部复杂曲线
x437 = np.linspace(2.685, 3.188, 100)
y437 = -1.5 * x437 + 0.27
plt.plot(x437, y437, 'k', linewidth=1.5)

x438 = np.linspace(2.828, 3.183, 100)
y438 = -2 * x438 + 2.04
plt.plot(x438, y438, 'k', linewidth=1.5)

x439 = np.linspace(3.18, 3.46, 100)
y439 = -1.5 * x439 + 0.45
plt.plot(x439, y439, 'k', linewidth=1.5)

x40 = np.linspace(3.19, 3.579, 100)
y440 = -1.1 * x40 - 1
plt.plot(x40, y440, 'k', linewidth=1.5)

x441 = np.linspace(3.46, 3.59, 100)
y441 = -1.5 * x441 + 0.45
plt.plot(x441, y441, 'k', linewidth=1.5)

x442 = np.linspace(2.9, 3.065, 100)
y442 = -2 * x442 + 1.2
plt.plot(x442, y442, 'k', linewidth=1.5)

y443 = np.linspace(-3.441, -2.974, 100)
x443 = (y443 + 3.4) ** 2 / 2 + 2.44
plt.plot(x443, y443, 'k', linewidth=1.5)

y444 = np.linspace(-4.934, -3.441, 100)
x444 = (y444 + 3.4) ** 2 / 6.6 + 2.44
plt.plot(x444, y444, 'k', linewidth=1.5)

# 第九部分:右下曲线
x445 = np.linspace(7.06, 8.7, 100)
y445 = 0.14 * (x445 - 8.7) ** 2 - 4.4
plt.plot(x445, y445, 'k', linewidth=1.5)

# 第十部分:左下小结构
x446 = np.linspace(2.06, 2.255, 100)
y446 = -7.7 * (x446 - 2.5) ** 2 - 3.5
plt.plot(x446, y446, 'k', linewidth=1.5)

x447 = np.linspace(2.478, 2.712, 100)
y447 = 0.4 * x447 - 3.44
plt.plot(x447, y447, 'k', linewidth=1.5)

x448 = np.linspace(2.32, 2.478, 100)
y448 = -0.05 * x448 - 2.325
plt.plot(x448, y448, 'k', linewidth=1.5)

x449 = np.linspace(2.183, 2.318, 100)
y449 = 0.7 * x449 - 4.064
plt.plot(x449, y449, 'k', linewidth=1.5)

x450 = np.linspace(1.368, 2.17, 100)
y450 = -0.85 * x450 - 0.65
plt.plot(x450, y450, 'k', linewidth=1.5)

x451 = np.linspace(2.175, 2.3, 100)
y451 = -3.5 * x451 + 5.12
plt.plot(x451, y451, 'k', linewidth=1.5)

x452 = np.linspace(2.2, 2.29, 100)
y452 = -2.6 * np.ones_like(x452)
plt.plot(x452, y452, 'k', linewidth=1.5)

x453 = np.linspace(2.29, 2.437, 100)
y453 = -1.6 * x453 + 1.07
plt.plot(x453, y453, 'k', linewidth=1.5)

x454 = np.linspace(2.24, 2.31, 100)
y454 = -2.55 * np.ones_like(x454)
plt.plot(x454, y454, 'k', linewidth=1.5)

x455 = np.linspace(2.313, 2.584, 100)
y455 = -0.8 * x455 - 0.7
plt.plot(x455, y455, 'k', linewidth=1.5)

x456 = np.linspace(2.512, 2.679, 100)
y456 = -2.49 * np.ones_like(x456)
plt.plot(x456, y456, 'k', linewidth=1.5)

# 第十一部分:左下区域曲线
x457 = np.linspace(0.57, 1.25, 100)
y457 = -0.8 * x457 - 2.4
plt.plot(x457, y457, 'k', linewidth=1.5)

x458 = np.linspace(1.246, 2.499, 100)
y458 = 0.22 * (x458 - 3) ** 2 - 4.08
plt.plot(x458, y458, 'k', linewidth=1.5)

x459 = np.linspace(2.276, 2.46, 100)
y459 = (x459 - 3) ** 2 - 4.03
plt.plot(x459, y459, 'k', linewidth=1.5)

x460 = np.linspace(2.236, 2.446, 100)
y460 = -2 * x460 + 1.35
plt.plot(x460, y460, 'k', linewidth=1.5)

x461 = np.linspace(2.235, 2.517, 100)
y461 = 0.2 * x461 - 3.51
plt.plot(x461, y461, 'k', linewidth=1.5)

x462 = np.linspace(1.55, 2.21, 100)
y462 = -0.5 * x462 - 1.865
plt.plot(x462, y462, 'k', linewidth=1.5)

x463 = np.linspace(2.218, 2.24, 100)
y463 = -4 * x463 + 5.9
plt.plot(x463, y463, 'k', linewidth=1.5)

y464 = np.linspace(-3.3, -3.12, 100)
x464 = (44.7 - y464) / 20
plt.plot(x464, y464, 'k', linewidth=1.5)

# 第十二部分:底部曲线
x465 = np.linspace(0.968, 1.441, 100)
y465 = -0.8 * x465 - 1.4
plt.plot(x465, y465, 'k', linewidth=1.5)

x466 = np.linspace(1.433, 2.06, 100)
y466 = -1.1 * x466 - 0.97
plt.plot(x466, y466, 'k', linewidth=1.5)

x467 = np.linspace(0.571, 0.865, 100)
y467 = 2 * x467 - 4
plt.plot(x467, y467, 'k', linewidth=1.5)

x468 = np.linspace(0.866, 0.969, 100)
y468 = -5.6 * (x468 - 1) ** 2 - 2.17
plt.plot(x468, y468, 'k', linewidth=1.5)

x469 = np.linspace(0.678, 0.967, 100)
y469 = 2 * x469 - 4.3
plt.plot(x469, y469, 'k', linewidth=1.5)

x470 = np.linspace(0.965, 1.07, 100)
y470 = x470 - 3.33
plt.plot(x470, y470, 'k', linewidth=1.5)

x471 = np.linspace(0.785, 1, 100)
y471 = 2 * x471 - 4.6
plt.plot(x471, y471, 'k', linewidth=1.5)

x472 = np.linspace(1, 1.173, 100)
y472 = 1.5 * x472 - 4.1
plt.plot(x472, y472, 'k', linewidth=1.5)

x473 = np.linspace(1.09, 1.294, 100)
y473 = 1.5 * x473 - 3.84
plt.plot(x473, y473, 'k', linewidth=1.5)

x474 = np.linspace(1.147, 1.34, 100)
y474 = 1.5 * x474 - 4.04
plt.plot(x474, y474, 'k', linewidth=1.5)

x475 = np.linspace(1.243, 1.466, 100)
y475 = 1.5 * x475 - 4.26
plt.plot(x475, y475, 'k', linewidth=1.5)

x476 = np.linspace(1.294, 1.367, 100)
y476 = 1.2 * x476 - 3.454
plt.plot(x476, y476, 'k', linewidth=1.5)

x477 = np.linspace(1.341, 1.458, 100)
y477 = 1.2 * x477 - 3.64
plt.plot(x477, y477, 'k', linewidth=1.5)

x478 = np.linspace(1.465, 1.55, 100)
y478 = 1.1 * x478 - 3.674
plt.plot(x478, y478, 'k', linewidth=1.5)

x479 = np.linspace(0.873, 0.982, 100)
y479 = 1.8 * x479 - 4.67
plt.plot(x479, y479, 'k', linewidth=1.5)

x480 = np.linspace(0.976, 1.127, 100)
y480 = 1.8 * x480 - 4.94
plt.plot(x480, y480, 'k', linewidth=1.5)

x481 = np.linspace(0.985, 1.1, 100)
y481 = -4 * (x481 - 1.1) ** 2 - 2.85
plt.plot(x481, y481, 'k', linewidth=1.5)

x482 = np.linspace(1.1, 1.129, 100)
y482 = -70 * (x482 - 1.1) ** 2 - 2.85
plt.plot(x482, y482, 'k', linewidth=1.5)

# 第十三部分:底部小结构
y483 = np.linspace(-1.892, -1.614, 100)
x483 = (y483 + 1.5) ** 2 / 0.9 + 1.13
plt.plot(x483, y483, 'k', linewidth=1.5)

x484 = np.linspace(1.018, 1.141, 100)
y484 = -2.8 * x484 + 1.58
plt.plot(x484, y484, 'k', linewidth=1.5)

x485 = np.linspace(0.93, 1.02, 100)
y485 = -12 * (x485 - 0.93) ** 2 - 1.177
plt.plot(x485, y485, 'k', linewidth=1.5)

x486 = np.linspace(0.78, 0.93, 100)
y486 = -0.2 * x486 - 0.99
plt.plot(x486, y486, 'k', linewidth=1.5)

x487 = np.linspace(0.629, 0.78, 100)
y487 = 3 * (x487 - 0.78) ** 2 - 1.145
plt.plot(x487, y487, 'k', linewidth=1.5)

x488 = np.linspace(0.295, 0.628, 100)
y488 = -1.074 * np.ones_like(x488)
plt.plot(x488, y488, 'k', linewidth=1.5)

x489 = np.linspace(0.2, 0.296, 100)
y489 = 2.8 * (x489 - 0.2) ** 2 - 1.1
plt.plot(x489, y489, 'k', linewidth=1.5)

x490 = np.linspace(0.08, 0.2, 100)
y490 = -1.1 * np.ones_like(x490)
plt.plot(x490, y490, 'k', linewidth=1.5)

y491 = np.linspace(-1.225, -1.1, 100)
x491 = (y491 + 1.15) ** 2 / 0.07 + 0.047
plt.plot(x491, y491, 'k', linewidth=1.5)

x492 = np.linspace(0.127, 0.307, 100)
y492 = -0.6 * x492 - 1.15
plt.plot(x492, y492, 'k', linewidth=1.5)

x493 = np.linspace(0.133, 0.584, 100)
y493 = -1.23 * np.ones_like(x493)
plt.plot(x493, y493, 'k', linewidth=1.5)

x494 = np.linspace(0.587, 0.764, 100)
y494 = 2 * (x494 - 0.78) ** 2 - 1.303
plt.plot(x494, y494, 'k', linewidth=1.5)

x495 = np.linspace(0.385, 0.59, 100)
y495 = -3 * (x495 - 0.5) ** 2 - 1.33
plt.plot(x495, y495, 'k', linewidth=1.5)

x496 = np.linspace(0.591, 0.646, 100)
y496 = -1.356 * np.ones_like(x496)
plt.plot(x496, y496, 'k', linewidth=1.5)

x497 = np.linspace(0.34, 0.68, 100)
y497 = 1.2 * (x497 - 0.68) ** 2 - 1.52
plt.plot(x497, y497, 'k', linewidth=1.5)

x498 = np.linspace(0.68, 0.825, 100)
y498 = 3.3 * (x498 - 0.68) ** 2 - 1.52
plt.plot(x498, y498, 'k', linewidth=1.5)

x499 = np.linspace(0.486, 0.629, 100)
y499 = -1.7 * (x499 - 0.65) ** 2 - 1.43
plt.plot(x499, y499, 'k', linewidth=1.5)

x500 = np.linspace(0.995, 1.092, 100)
y500 = -1.2 * x500 - 0.89
plt.plot(x500, y500, 'k', linewidth=1.5)

# 1. y=-1.7*(x-0.72)**2-1.96 {0.811<x<0.993}
x501 = np.linspace(0.811, 0.993, 100)
y501 = -1.7 * (x501 - 0.72) ** 2 - 1.96
plt.plot(x501, y501, 'k')

# 2. y=-0.8*x-1.325 {0.653<x<0.811}
x502 = np.linspace(0.653, 0.811, 100)
y502 = -0.8 * x502 - 1.325
plt.plot(x502, y502, 'k')

# 3. y=-1.03*x**2-1.41 {0.176<x<0.652}
x503 = np.linspace(0.176, 0.652, 100)
y503 = -1.03 * x503 ** 2 - 1.41
plt.plot(x503, y503, 'k')

# 4. (y+1.37)**2=0.088*(x-0.12) {-1.44<y<-1.318}
y504 = np.linspace(-1.44, -1.318, 100)
x504 = (y504 + 1.37) ** 2 / 0.088 + 0.12
plt.plot(x504, y504, 'k')

# 5. y=-1.1*(x-0.09)**2-1.312 {0.151<x<0.34}
x505 = np.linspace(0.151, 0.34, 100)
y505 = -1.1 * (x505 - 0.09) ** 2 - 1.312
plt.plot(x505, y505, 'k')

# 6. y=-(x-0.2)**2-2.4 {0.261<x<0.683}
x506 = np.linspace(0.261, 0.683, 100)
y506 = -(x506 - 0.2) ** 2 - 2.4
plt.plot(x506, y506, 'k')

# 507. y=-0.2*x-2.35 {-0.09<x<0.26}
x507 = np.linspace(-0.09, 0.26, 100)
y507 = -0.2 * x507 - 2.35
plt.plot(x507, y507, 'k')

# 508. y=-0.8*x-1.59 {0.714<x<0.86}
x508 = np.linspace(0.714, 0.86, 100)
y508 = -0.8 * x508 - 1.59
plt.plot(x508, y508, 'k')

# 509. y=-1.3*x-1.23 {0.576<x<0.715}
x509 = np.linspace(0.576, 0.715, 100)
y509 = -1.3 * x509 - 1.23
plt.plot(x509, y509, 'k')

# 10. y=-0.4*x-1.72 {0.25<x<0.52}
x510 = np.linspace(0.25, 0.52, 100)
y510 = -0.4 * x510 - 1.72
plt.plot(x510, y510, 'k')

# 11. y=-8*(x-0.49)**2-1.92 {0.519<x<0.576}
x511 = np.linspace(0.519, 0.576, 100)
y511 = -8 * (x511 - 0.49) ** 2 - 1.92
plt.plot(x511, y511, 'k')

# 12. y=-1.82 {0.024<x<0.25}
x512 = np.linspace(0.024, 0.25, 100)
y512 = -1.82 * np.ones_like(x512)
plt.plot(x512, y512, 'k')

# 13. y=1.4*(x-0.03)**2-1.82 {-0.208<x<0.024}
x513 = np.linspace(-0.208, 0.024, 100)
y513 = 1.4 * (x513 - 0.03) ** 2 - 1.82
plt.plot(x513, y513, 'k')

# 14. y=-11*(x+0.238)**2-1.73 {-0.282<x<-0.208}
x514 = np.linspace(-0.282, -0.208, 100)
y514 = -11 * (x514 + 0.238) ** 2 - 1.73
plt.plot(x514, y514, 'k')

# 15. y=2.3*(x+0.06)**2-1.95 {-0.282<x<-0.06}
x515 = np.linspace(-0.282, -0.06, 100)
y515 = 2.3 * (x515 + 0.06) ** 2 - 1.95
plt.plot(x515, y515, 'k')

# 16. x=-0.283 {-1.836<y<-1.752}
y516 = np.linspace(-1.836, -1.752, 100)
x516 = -0.283 * np.ones_like(y516)
plt.plot(x516, y516, 'k')

# 17. y=-3.2*(x+0.06)**2-1.95 {-0.06<x<0.1}
x517 = np.linspace(-0.06, 0.1, 100)
y517 = -3.2 * (x517 + 0.06) ** 2 - 1.95
plt.plot(x517, y517, 'k')

# 18. (y+2.2)**2=-0.4*(x-0.173) {-2.129<y<-2.03}
y518 = np.linspace(-2.129, -2.03, 100)
x518 = -(y518 + 2.2) ** 2 / 0.4 + 0.173
plt.plot(x518, y518, 'k')

# 19. y=-1.1*x-2.43 {-0.208<x<-0.088}
x519 = np.linspace(-0.208, -0.088, 100)
y519 = -1.1 * x519 - 2.43
plt.plot(x519, y519, 'k')

# 20. y=-0.7*x-2.35 {-0.417<x<-0.209}
x520 = np.linspace(-0.417, -0.209, 100)
y520 = -0.7 * x520 - 2.35
plt.plot(x520, y520, 'k')

# 21. y=-2*x-2.9 {-0.525<x<-0.42}
x521 = np.linspace(-0.525, -0.42, 100)
y521 = -2 * x521 - 2.9
plt.plot(x521, y521, 'k')

# 22. y=-0.6*x-2.38 {-0.436<x<-0.119}
x522 = np.linspace(-0.436, -0.119, 100)
y522 = -0.6 * x522 - 2.38
plt.plot(x522, y522, 'k')

# 23. y=-1.5*x-2.78 {-0.558<x<-0.441}
x523 = np.linspace(-0.558, -0.441, 100)
y523 = -1.5 * x523 - 2.78
plt.plot(x523, y523, 'k')

# 24. y=-5*x-4.74 {-0.624<x<-0.559}
x524 = np.linspace(-0.624, -0.559, 100)
y524 = -5 * x524 - 4.74
plt.plot(x524, y524, 'k')

# 25. y=-5*x-4.48 {-0.57<x<-0.525}
x525 = np.linspace(-0.57, -0.525, 100)
y525 = -5 * x525 - 4.48
plt.plot(x525, y525, 'k')

# 26. y=(x-0.1)**2-2.12 {-0.344<x<0.1}
x526 = np.linspace(-0.344, 0.1, 100)
y526 = (x526 - 0.1) ** 2 - 2.12
plt.plot(x526, y526, 'k')

# 27. y=17*(x+0.33)**2-1.925 {-0.44<x<-0.343}
x527 = np.linspace(-0.44, -0.343, 100)
y527 = 17 * (x527 + 0.33) ** 2 - 1.925
plt.plot(x527, y527, 'k')

# 28. y=-6.5*(x+0.56)**2-1.622 {-0.569<x<-0.439}
x528 = np.linspace(-0.569, -0.439, 100)
y528 = -6.5 * (x528 + 0.56) ** 2 - 1.622
plt.plot(x528, y528, 'k')

# 29. y=-15*(x+0.6)**2-1.61 {-0.622<x<-0.57}
x529 = np.linspace(-0.622, -0.57, 100)
y529 = -15 * (x529 + 0.6) ** 2 - 1.61
plt.plot(x529, y529, 'k')

# 30. y=15*x-8.4 {-1.8<y<-1.62}
y530 = np.linspace(-1.8, -1.62, 100)
x530 = (y530 + 8.4) / 15
plt.plot(x530, y530, 'k')

# 31. y=18*(x-0.475)**2-1.82 {0.44<x<0.549}
x531 = np.linspace(0.44, 0.549, 100)
y531 = 18 * (x531 - 0.475) ** 2 - 1.82
plt.plot(x531, y531, 'k')

# 32. y=2*(x-0.2)**2-1.58 {0.165<x<0.349}
x532 = np.linspace(0.165, 0.349, 100)
y532 = 2 * (x532 - 0.2) ** 2 - 1.58
plt.plot(x532, y532, 'k')

# 33. y=0.5*x-1.55 {0.119<x<0.198}
x533 = np.linspace(0.119, 0.198, 100)
y533 = 0.5 * x533 - 1.55
plt.plot(x533, y533, 'k')

# 34. y=-4*(x+0.1)**2-1.3 {-0.066<x<0.235}
x534 = np.linspace(-0.066, 0.235, 100)
y534 = -4 * (x534 + 0.1) ** 2 - 1.3
plt.plot(x534, y534, 'k')

# 35. y=-0.7*x-1.353 {-0.162<x<-0.067}
x535 = np.linspace(-0.162, -0.067, 100)
y535 = -0.7 * x535 - 1.353
plt.plot(x535, y535, 'k')

# 36. y=16*(x-0.21)**2-1.76 {0.157<x<0.235}
x536 = np.linspace(0.157, 0.235, 100)
y536 = 16 * (x536 - 0.21) ** 2 - 1.76
plt.plot(x536, y536, 'k')

# 37. y=-1.4*x-1.496 {0.025<x<0.155}
x537 = np.linspace(0.025, 0.155, 100)
y537 = -1.4 * x537 - 1.496
plt.plot(x537, y537, 'k')

# 38. y=-3.4*(x+0.186)**2-1.38 {-0.149<x<0.024}
x538 = np.linspace(-0.149, 0.024, 100)
y538 = -3.4 * (x538 + 0.186) ** 2 - 1.38
plt.plot(x538, y538, 'k')

# 39. y=-0.8*x-1.503 {-0.234<x<-0.147}
x539 = np.linspace(-0.234, -0.147, 100)
y539 = -0.8 * x539 - 1.503
plt.plot(x539, y539, 'k')

# 40. y=16*(x-0.13)**2-1.77 {0.094<x<0.173}
x540 = np.linspace(0.094, 0.173, 100)
y540 = 16 * (x540 - 0.13) ** 2 - 1.77
plt.plot(x540, y540, 'k')

# 41. y=-x-1.655 {-0.067<x<0.094}
x541 = np.linspace(-0.067, 0.094, 100)
y541 = -x541 - 1.655
plt.plot(x541, y541, 'k')

# 42. y=-0.8*x-1.642 {-0.206<x<-0.068}
x542 = np.linspace(-0.206, -0.068, 100)
y542 = -0.8 * x542 - 1.642
plt.plot(x542, y542, 'k')

# 43. y=-0.3*x-1.539 {-0.344<x<-0.206}
x543 = np.linspace(-0.344, -0.206, 100)
y543 = -0.3 * x543 - 1.539
plt.plot(x543, y543, 'k')

# 44. y=3*(x+0.3)**2-1.44 {-0.44<x<-0.344}
x544 = np.linspace(-0.44, -0.344, 100)
y544 = 3 * (x544 + 0.3) ** 2 - 1.44
plt.plot(x544, y544, 'k')

# 45. (y+1.479)**2=0.13*(x+0.51) {-1.583<y<-1.382}
y545 = np.linspace(-1.583, -1.382, 100)
x545 = (y545 + 1.479) ** 2 / 0.13 - 0.51
plt.plot(x545, y545, 'k')

# 46. y=-7*(x+0.44)**2-1.582 {-0.427<x<-0.3}
x546 = np.linspace(-0.427, -0.3, 100)
y546 = -7 * (x546 + 0.44) ** 2 - 1.582
plt.plot(x546, y546, 'k')

# 47. x=-0.3 {-1.761<y<-1.719}
y547 = np.linspace(-1.761, -1.719, 100)
x547 = -0.3 * np.ones_like(y547)
plt.plot(x547, y547, 'k')

# 48. y=9*(x+0.35)**2-1.785 {-0.437<x<-0.3}
x548 = np.linspace(-0.437, -0.3, 100)
y548 = 9 * (x548 + 0.35) ** 2 - 1.785
plt.plot(x548, y548, 'k')

# 49. y=4*(x+0.5)**2-1.625 {-0.683<x<-0.546}
x549 = np.linspace(-0.683, -0.546, 100)
y549 = 4 * (x549 + 0.5) ** 2 - 1.625
plt.plot(x549, y549, 'k')

# 50. y=-0.9*x-2.07 {-0.846<x<-0.707}
x550 = np.linspace(-0.846, -0.707, 100)
y550 = -0.9 * x550 - 2.07
plt.plot(x550, y550, 'k')

# 51. y=-2.5*x-3.2 {-0.706<x<-0.683}
x551 = np.linspace(-0.706, -0.683, 100)
y551 = -2.5 * x551 - 3.2
plt.plot(x551, y551, 'k')

# 52. y=35*(x+0.84)**2-1.306 {-0.911<x<-0.845}
x552 = np.linspace(-0.911, -0.845, 100)
y552 = 35 * (x552 + 0.84) ** 2 - 1.306
plt.plot(x552, y552, 'k')

# 53. y=-0.7*x-1.35 {-0.69<x<-0.4}
x553 = np.linspace(-0.69, -0.4, 100)
y553 = -0.7 * x553 - 1.35
plt.plot(x553, y553, 'k')

# 54. y=3.5*(x+0.28)**2-1.12 {-0.4<x<-0.245}
x554 = np.linspace(-0.4, -0.245, 100)
y554 = 3.5 * (x554 + 0.28) ** 2 - 1.12
plt.plot(x554, y554, 'k')

# 55. y=0.45*x-1.005 {-0.247<x<-0.103}
x555 = np.linspace(-0.247, -0.103, 100)
y555 = 0.45 * x555 - 1.005
plt.plot(x555, y555, 'k')

# 56. y=-0.7*x-1.12 {-0.101<x<0.047}
x556 = np.linspace(-0.101, 0.047, 100)
y556 = -0.7 * x556 - 1.12
plt.plot(x556, y556, 'k')

# 57. y=0.1*x-1.145 {-0.2<x<-0.084}
x557 = np.linspace(-0.2, -0.084, 100)
y557 = 0.1 * x557 - 1.145
plt.plot(x557, y557, 'k')

# 58. y=2*(x-0.1)**2-1.22 {-0.083<x<0.1}
x558 = np.linspace(-0.083, 0.1, 100)
y558 = 2 * (x558 - 0.1) ** 2 - 1.22
plt.plot(x558, y558, 'k')

# 59. y=-1.298 {-0.07<x<0.044}
x559 = np.linspace(-0.07, 0.044, 100)
y559 = -1.298 * np.ones_like(x559)
plt.plot(x559, y559, 'k')

# 60. y=-0.7*x-1.265 {0.046<x<0.123}
x560 = np.linspace(0.046, 0.123, 100)
y560 = -0.7 * x560 - 1.265
plt.plot(x560, y560, 'k')

# 61. (y+1.28)**2=0.5*(x-0.11) {-1.348<y<-1.22}
y561 = np.linspace(-1.348, -1.22, 100)
x561 = (y561 + 1.28) ** 2 / 0.5 + 0.11
plt.plot(x561, y561, 'k')

# 62. (y+1.28)**2=0.5*(x-0.145) {-1.32<y<-1.238}
y562 = np.linspace(-1.32, -1.238, 100)
x562 = (y562 + 1.28) ** 2 / 0.5 + 0.145
plt.plot(x562, y562, 'k')

# 63. x=-4.69 {-3.19<y<-2.85}
y563 = np.linspace(-3.19, -2.85, 100)
x563 = -4.69 * np.ones_like(y563)
plt.plot(x563, y563, 'k')

# 64. (y+3.23)**2=0.17*(x+4.68) {-3.57<y<-3.28}
y564 = np.linspace(-3.57, -3.28, 100)
x564 = (y564 + 3.23) ** 2 / 0.17 - 4.68
plt.plot(x564, y564, 'k')

# 65. y=-4*(x+5.486) {-3.28<y<-3.188}
y565 = np.linspace(-3.28, -3.188, 100)
x565 = -(y565) / 4 - 5.486
plt.plot(x565, y565, 'k')

# 66. y=-20*(x+4.18) {-4.26<y<-3.57}
y566 = np.linspace(-4.26, -3.57, 100)
x566 = -(y566) / 20 - 4.18
plt.plot(x566, y566, 'k')

# 67. (y+4.27)**2=-2.5*(x+3.97) {-4.94<y<-4.26}
y567 = np.linspace(-4.94, -4.26, 100)
x567 = -(y567 + 4.27) ** 2 / 2.5 - 3.97
plt.plot(x567, y567, 'k')

# 68. x=-3.6 {-3.42<y<-3.17}
y568 = np.linspace(-3.42, -3.17, 100)
x568 = -3.6 * np.ones_like(y568)
plt.plot(x568, y568, 'k')

# 69. y=13*(x+2.75) {-4.55<y<-3.51}
y569 = np.linspace(-4.55, -3.51, 100)
x569 = (y569) / 13 - 2.75
plt.plot(x569, y569, 'k')

# 70. (y+4.4)**2=-2*(x+3.09) {-4.94<y<-4.53}
y570 = np.linspace(-4.94, -4.53, 100)
x570 = -(y570 + 4.4) ** 2 / 2 - 3.09
plt.plot(x570, y570, 'k')

# 71. y=20*(x+2.35) {-4.8<y<-3.45}
y571 = np.linspace(-4.8, -3.45, 100)
x571 = (y571) / 20 - 2.35
plt.plot(x571, y571, 'k')

# 72. y=x-2.22 {-2.72<x<-2.588}
x572 = np.linspace(-2.72, -2.588, 100)
y572 = x572 - 2.22
plt.plot(x572, y572, 'k')

# 73. (y-1.9)**2=4.7*(x+4.23) {0.658<y<1.977}
y573 = np.linspace(0.658, 1.977, 100)
x573 = (y573 - 1.9) ** 2 / 4.7 - 4.23
plt.plot(x573, y573, 'k')

# 74. (y-1.9)**2=4.7*(x+4.18) {0.782<y<1.945}
y574 = np.linspace(0.782, 1.945, 100)
x574 = (y574 - 1.9) ** 2 / 4.7 - 4.18
plt.plot(x574, y574, 'k')

# 75. (y-1.9)**2=5*(x+3.95) {0.77<y<1.783}
y575 = np.linspace(0.77, 1.783, 100)
x575 = (y575 - 1.9) ** 2 / 5 - 3.95
plt.plot(x575, y575, 'k')

# 76. (y-1.9)**2=5*(x+3.996) {0.815<y<1.816}
y576 = np.linspace(0.815, 1.816, 100)
x576 = (y576 - 1.9) ** 2 / 5 - 3.996
plt.plot(x576, y576, 'k')

# 77. y=6*(x+3.8)**2+0.6 {-3.9<x<-3.718}
x577 = np.linspace(-3.9, -3.718, 100)
y577 = 6 * (x577 + 3.8) ** 2 + 0.6
plt.plot(x577, y577, 'k')

# 78. (y-0.72)**2=-0.17*(x+3.68) {0.644<y<0.77}
y578 = np.linspace(0.644, 0.77, 100)
x578 = -(y578 - 0.72) ** 2 / 0.17 - 3.68
plt.plot(x578, y578, 'k')

# 79. (x+3.827)**2 + (y-0.763)**2 = 0.008
theta = np.linspace(0, 2 * np.pi, 100)
x579 = np.sqrt(0.008) * np.cos(theta) - 3.827
y579 = np.sqrt(0.008) * np.sin(theta) + 0.763
plt.plot(x579, y579, 'k')

# 80. (x+3.827)**2 + (y-0.763)**2 <= 0.002 (填充圆)
theta = np.linspace(0, 2 * np.pi, 100)
x580 = np.sqrt(0.002) * np.cos(theta) - 3.827
y580 = np.sqrt(0.002) * np.sin(theta) + 0.763
plt.fill(x580, y580, 'k')

# 81. y=-1.7*(x+3.9)**2+4.4 {-3.941<x<-3.7}
x581 = np.linspace(-3.941, -3.7, 100)
y581 = -1.7 * (x581 + 3.9) ** 2 + 4.4
plt.plot(x581, y581, 'k')

# 82. y=-2.3*(x+3.9)**2+4.46 {-3.866<x<-3.685}
x582 = np.linspace(-3.866, -3.685, 100)
y582 = -2.3 * (x582 + 3.9) ** 2 + 4.46
plt.plot(x582, y582, 'k')

# 83. (y-3)**2=2*(x+3.5) {2.859<y<3.148}
y583 = np.linspace(2.859, 3.148, 100)
x583 = (y583 - 3) ** 2 / 2 - 3.5
plt.plot(x583, y583, 'k')

# 84. y=40*(x+3.45)**2+2.8 {-3.489<x<-3.44}
x584 = np.linspace(-3.489, -3.44, 100)
y584 = 40 * (x584 + 3.45) ** 2 + 2.8
plt.plot(x584, y584, 'k')

# 85. (y-2.92)**2=-0.9*(x+3.424) {2.8<y<3.154}
y585 = np.linspace(2.8, 3.154, 100)
x585 = -(y585 - 2.92) ** 2 / 0.9 - 3.424
plt.plot(x585, y585, 'k')

# 86. (y-2.14)**2=-0.1*(x+3.135) {2.104<y<2.161}
y586 = np.linspace(2.104, 2.161, 100)
x586 = -(y586 - 2.14) ** 2 / 0.1 - 3.135
plt.plot(x586, y586, 'k')

# 87. y=-7*x-26.3 {-0.293<y<-0.0257}
y587 = np.linspace(-0.293, -0.0257, 100)
x587 = -(y587 + 26.3) / 7
plt.plot(x587, y587, 'k')

# 88. (x+3.28)**2/2 + (y-2.31)**2 = 0.002
theta = np.linspace(0, 2 * np.pi, 100)
x588 = np.sqrt(0.002 * 2) * np.cos(theta) - 3.28
y588 = np.sqrt(0.002) * np.sin(theta) + 2.31
plt.plot(x588, y588, 'k')

# 89. (0.5*(x+3.28)+0.866*(y-2.31))**2/2 + (-0.866*(x+3.28)+0.5*(y-2.31))**2 <= 0.002
# 这是一个旋转的椭圆,需要更复杂的处理
# 这里简化为绘制一个椭圆
theta = np.linspace(0, 2 * np.pi, 100)
a = np.sqrt(0.002 * 2)
b = np.sqrt(0.002)
x_rot = a * np.cos(theta)
y_rot = b * np.sin(theta)
# 旋转角度
angle = np.pi / 3
x589 = x_rot * np.cos(angle) - y_rot * np.sin(angle) - 3.28
y589 = x_rot * np.sin(angle) + y_rot * np.cos(angle) + 2.31
plt.fill(x589, y589, 'k')

# 设置坐标轴范围
plt.xlim(-6, 8)
plt.ylim(-5, 5)
plt.gca().set_aspect('equal', adjustable='box')
plt.grid(False)
plt.axis('off')

# 显示图形
plt.tight_layout()
plt.savefig('complex_plot.png', dpi=300, bbox_inches='tight')
plt.show()

图像

 

Logo

欢迎加入DeepSeek 技术社区。在这里,你可以找到志同道合的朋友,共同探索AI技术的奥秘。

更多推荐