心形线的数学表达式
直接生成心形线的python代码:
# coding:utf-8
__author__ = 'taohao'
import matplotlib.pyplot as plt
from matplotlib import animation
import numpy as np
import math
def drawHeart():
t = np.linspace(0, math.pi, 1000)
x = np.sin(t)
y = np.cos(t) + np.power(x, 2.0/3)
plt.plot(x, y, color='red', linewidth=2, label='h')
plt.plot(-x, y, color='red', linewidth=2, label='-h')
plt.xlabel('t')
plt.ylabel('h')
plt.ylim(-2, 2)
plt.xlim(-2, 2)
plt.legend()
plt.show()
drawHeart()
用到的心形线方程是上图所示的方程,使用参数方程的形式来表示
动态生成心形线的python代码
# coding:utf-8
__author__ = 'taohao'
import matplotlib.pyplot as plt
from matplotlib import animation
import numpy as np
import math
figure = plt.figure()
axes = plt.axes(xlim=(-2, 2), ylim=(-2, 2))
line1, = axes.plot([], [], color='red', linewidth=2, label='1')
line2, = axes.plot([], [], color='red', linewidth=2, label='2')
def init():
line1.set_data([], [])
line2.set_data([], [])
return line1, line2
def animate(i):
print i
t = np.linspace(0, i/math.pi, 100)
x = np.sin(t)
y = np.cos(t) + np.power(x, 2.0/3)
line1.set_data(x, y)
line2.set_data(-x, y)
return line1, line2
ani = animation.FuncAnimation(figure, animate, init_func=init, frames=14, interval=200)
# ani.save('Heart.mp4') save as mp4 but need to install video-encoder. i did not install it, so this line makes exeception
plt.show()