首页 > 分享 > python 画心形线 matplotlib

python 画心形线 matplotlib

心形线的数学表达式

极坐标方程

水平方向: r=a(1-cosθ) 或 r=a(1+cosθ) (a>0)

垂直方向: r=a(1-sinθ) 或 r=a(1+sinθ) (a>0)

直角坐标方程

心形线的 平面直角坐标系方程表达式分别为 x^2+y^2+a*x=a*sqrt(x^2+y^2) 和 x^2+y^2-a*x=a*sqrt(x^2+y^2)

参数方程

x=a*(2*cos(t)-cos(2*t))

y=a*(2*sin(t)-sin(2*t))

所围面积为3/2*PI*a^2,形成的弧长为8a

直接生成心形线的python代码:

__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()

主要用到了matplotlib库来进行图像的绘制

用到的心形线方程是上图所示的方程,使用参数方程的形式来表示

动态生成心形线的python代码

__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)

plt.show()

动态生成,需要制作动画,主要用到了matplotlib中的animation库


相关知识

Python的可视化包 – Matplotlib
Python中的数据可视化:Matplotlib基础与高级技巧
用python画花瓣
Python画玫瑰花完整代码
python画一朵花的代码
python 生成玫瑰花代码
Python机器学习基础教程
python绘制4瓣花瓣的花朵
python画玫瑰花代码简单
python玫瑰花代码简单

网址: python 画心形线 matplotlib https://m.huajiangbk.com/newsview547145.html

所属分类:花卉
上一篇: 阳叔说IHG洲际酒店集团入门首选
下一篇: vue