今天在微博上看到了一个动态的心形波浪,感觉挺有意思了。然后在网上查了查,了解到了笛卡尔心形函数,及其美丽的童话故事,所以打算用python画一画,玩一下。
下面这个是我在微博上看到的心形波浪。
首先
import numpy as np
from matplotlib import pyplot as plt
import math
pi = math.pi
然后
x = np.linspace(-3.3**0.5, 3.3**0.5, 6001).reshape(-1,1)
y = (x**2)**(1/3) + 0.9*np.sqrt(3.3 - x**2)*np.sin(40*pi*x)
plt.plot(x,y,color = 'r')
plt.xlim(-3,3)
# plt.savefig('心形波浪')
plt.show()
显示
下面这个是笛卡尔心形函数
X = np.linspace(0, 2*pi, 500)
x = 2 * np.sin(X) - np.sin(2 * X)
y = 2 * np.cos(X) - np.cos(2 * X)
plt.plot(x, y,color = 'r')
plt.xlim(-5,5)
# plt.savefig('笛卡尔心形函数')
plt.show()
显示(相比于心,感觉更像马蹄哈哈)
上面这两个都不是太理想,又查了查,找到了下面两个,更好看一些。
x = np.linspace(-2, 2, 401)
plt.plot(x, np.sqrt(1-(np.abs(x)-1)*(np.abs(x)-1)), color = 'r')
plt.plot(x, np.arccos(1-np.abs(x))-pi, color = 'r')
plt.xlim(-3,3)
# plt.savefig('两段式心形函数')
plt.show()
X=np.linspace(-6,6,1201)
x=16*(np.sin(X))**3
y=13*np.cos(X)-5*np.cos(2*X)-2*np.cos(3*X)-np.cos(4*X)
plt.plot(x, y, color = 'r')
plt.xlim(-22,22)
# plt.savefig('心形函数')
plt.show()
我觉得最后这个最好看了
还有几个我不会画,等哪天会了再更新。