用python畫心形函數,屬於數學家的浪漫~

今天在微博上看到了一個動態的心形波浪,感覺挺有意思了。然後在網上查了查,瞭解到了笛卡爾心形函數,及其美麗的童話故事,所以打算用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()

心形函數

我覺得最後這個最好看了

還有幾個我不會畫,等哪天會了再更新。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章