如何用python画一颗心☆
程序员文章站
2022-03-26 11:29:26
...
如何用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)
下一篇: 分页类,php分页类_PHP教程