欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

用python实现程序员表白的心形

程序员文章站 2022-06-18 08:02:04
...

用python实现程序员表白的心形

不管了,先上效果图

用python实现程序员表白的心形

函数

心形函数展示
用python实现程序员表白的心形
这个函数的定义域x在-3.3^0.5 到3.3^0.5,这个函数中当a的值趋近于无穷大的时候,会呈现出一个填满的心形(不知道谁想出的这个函数,相当厉害)
这个是我在B站上看到别人用Matlab画出来的(有兴趣可以去B站找找视频),但是我想用python实现这个代码

Python实现

import matplotlib.pyplot as plt
import numpy as np
from math import *
a = 0
while(a<=100):
    x = np.linspace(-3.3**0.5,3.3**0.5,10000)
    y = [((t**2)**(1/3))+0.9*(3.3-t*t)**0.5*sin(a*t*pi) for t in x]
    plt.axis('equal')  ##设置x轴和y轴等比例
    plt.plot(x,y,color='Red')  ##画出x和y的图像并将颜色改为红色
    plt.show()
    a += 1   ##如果想画的更细一点可以让a自增的值小一点,我这里直接取1

Python的Bug

细心的小伙伴可能已经注意到我的代码里实现x^(2/3)分了两步,先将x做了平方然后再开立方根,因为我发现python中负数在开奇数次方根的时候会的到复数,**和pow()都有这个问题,虽然我不知道为什么(看不到python中的源码怎么实现这个算法的),但是根据高中知识一个数开奇数次方根实际是一个奇函数,可以将负号直接带出来运算(小伙伴有兴趣可以看我另外一个文章

https://blog.csdn.net/lovethebamboo/article/details/110329175

),所以我选择先做平方让正数后开立方根,这样算才能算出正确的结果(否则python会报警)

相关标签: python