python可视化绘制一个爱心形状的曲线,在爱心曲线内部绘制一个更小的爱心曲线的代码(小型的)。
时间: 2024-10-12 09:08:56 浏览: 40
在Python中,我们可以使用matplotlib库来绘制爱心形状的曲线。通常通过贝塞尔曲线(Bézier curve)可以实现这种复杂图形,这里我们将创建一个大的心形轮廓线,然后在其内部绘制一个小的心形。下面是一个简单的示例:
```python
import matplotlib.pyplot as plt
import numpy as np
# 定义贝塞尔曲线函数
def bezier_curve(t, control_points):
x = [p[0]*(1-t)**3 + 3*p[1]*t*(1-t)**2 + 3*p[2]*t**2*(1-t) + p[3]*t**3 for t in np.linspace(0, 1, 100)]
y = [p[0]*(1-t)**3 + 3*p[1]*t*(1-t)**2 + 3*p[2]*t**2*(1-t) + p[3]*t**3 for t in np.linspace(0, 1, 100)]
return x, y
# 大型心形控制点
large_heart_ctrlpts = [(0.5, -0.5), (-0.5, -0.5), (0.5, -1), (1.5, -0.5)]
# 小型心形控制点在大型心形内部
small_heart_ctrlpts = [(0.3, -0.3), (-0.3, -0.3), (0.3, -0.4), (1.3, -0.3)]
# 绘制大爱心
large_x, large_y = bezier_curve(np.linspace(0, 1, 100), large_heart_ctrlpts)
plt.fill(large_x, large_y, 'pink', alpha=0.5)
# 绘制小爱心在大爱心内部
small_x, small_y = bezier_curve(np.linspace(0, 1, 100), small_heart_ctrlpts)
plt.fill(small_x, small_y, 'red')
# 设置坐标轴范围和标题
plt.xlim([-2, 2])
plt.ylim([-2, 2])
plt.title("爱心曲线及内嵌小爱心")
plt.show()
阅读全文