数学之美:Python实现

这是一组由9830个圆圈构成的美丽图案,每一个圆圈有一个复杂数学公式来确定其中:

  • X(k),Y(k) : 表示圆心坐标
  • R(k) :表示半径 

下面我们让Python来画出这个美丽的图案 

from math import pi,sin,cos
import matplotlib.pyplot as plt
plt.style.use('seaborn-darkgrid')

def X(k):
    result=sin(pi*k/20000)**12*(1/2*cos(31*pi*k/10000)**16*
           sin(6*pi*k/10000)+1/6*sin(31*pi*k/10000)**20)+3*k/20000+\
           cos(31*pi*k/10000)**6*sin(pi/2*((k-10000)/10000)**7-pi/5)
    return result

def Y(k):    
    result=-9/4*cos(31*pi*k/10000)**6*cos(pi/2*((k-10000)/10000)**7-pi/5)*\
           (2/3+(sin(pi*k/20000)*sin(3*pi*k/20000))**6)+3/4*\
           cos(3*pi*(k-10000)/100000)**10*cos(9*pi*(k-10000)/100000)**10*\
           cos(36*pi*(k-10000)/100000)**14+7/10*((k-10000)/10000)**2
    return result

def R(k): 
    result=sin(pi*k/20000)**10*(1/4*cos(31*pi*k/10000+25*pi/32)**20+
           1/20*(cos(31*pi*k/10000)**2))+1/30*(3/2-cos(62*pi*k/10000)**2)
    return result

plt.figure(figsize=(6, 10),dpi=80)
for k in range(1,9831):
    circle = plt.Circle((X(k), Y(k)), R(k),linewidth=0.2,color='black', fill=False)
    plt.gcf().gca().add_artist(circle)

plt.xlim(-1.25, 2)
plt.ylim(-3, 1.7)
plt.show();

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

-派神-

感谢您慷慨解囊,我会更加努力!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值