如何用python画一颗心☆

如何用python画一颗心☆

‘心似双丝网,中有千千结’

import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D

def heart_3d(x,y,z):
    return (x**2+(9/4)*y**2+z**2-1)**3-x**2*z**3-(9/80)*y**2*z**3

def plot_implicit(fn,bbox=(-1.5,1.5)):
    xmin,xmax,ymin,ymax,zmin,zmax = bbox*3
    fig = plt.figure('HEART')
    ax = fig.add_subplot(111,projection = '3d')
    A = np.linspace(xmin,xmax,80)
    B = np.linspace(xmin,xmax,30)
    A1,A2 = np.meshgrid(A,A)

    for z in B:
        X,Y = A1,A2
        Z = fn(X,Y,z)
        cest = ax.contour(X,Y,z+Z,[z],zdir='z',colors=('r',))

    for y in B:
        X,Z = A1,A2
        Y = fn(X,y,Z)
        cest = ax.contour(X,Y+y,Z,[y],zdir = 'y',colors = ('red',))

    for x in B :
        Y,Z=A1,A2
        X = fn(x,Y,Z)
        cest = ax.contour(X+x,Y,Z,[x],zdir = 'x',colors = ('red',))

    ax.set_zlim3d(zmin,zmax)
    ax.set_xlim3d(xmin,xmax)
    ax.set_ylim3d(ymin,ymax)
        
    plt.show()

if __name__=='__main__':
    t = np.linspace(0,6.3,1000)
    x = 16*(np.sin(t))**3
    y = 13*np.cos(t)-5*np.cos(2*t)-2*np.cos(3*t)-np.cos(4*t)
    plt.figure('SweetHeart')
    plt.plot(x,y,'r')
    plt.title('SWEET   HEART',fontsize='large',color='red')
    plt.show()

    plot_implicit(heart_3d)

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值