使用Python打印爱心图案
目录
1、样式一:普通图案
2、样式二:3D立体图案
1、样式一:普通图案
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公众号:AllTests软件测试
import time
# 打印爱心图案
def print_love():
myData = "love"
for char in myData.split():
allChar = []
for y in range(12, -12, -1):
lst = []
lst_con = ''
for x in range(-30, 30):
formula = ((x * 0.05) ** 2 + (y * 0.1) ** 2 - 1) ** 3 - (x * 0.05) ** 2 * (y * 0.1) ** 3
if formula <= 0:
lst_con += char[(x) % len(char)]
else:
lst_con += ' '
lst.append(lst_con)
allChar += lst
print('\n'.join(allChar))
time.sleep(1)
if __name__ == '__main__':
print_love()
运行结果:
2、样式二:3D立体图案
脚本代码:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 公众号:AllTests软件测试
import matplotlib.pyplot as plt
import numpy as np
import time
# 打印爱心3D图案
def print_love3D():
start = time.time()
x_lim, y_lim, z_lim = np.linspace(-10, 10, 520), np.linspace(-10, 10, 520), np.linspace(-10, 10, 520)
X_points, Y_points, Z_points = [], [], []
for x in x_lim:
for y in y_lim:
for z in z_lim:
if (x**2+(9/4)*y**2+z**2-1)**3-(9/80)*y**2*z**3-x**2*z**3<=0:
X_points.append(x)
Y_points.append(y)
Z_points.append(z)
end = time.time()
fig = plt.figure()
ax = fig.add_subplot(111, projection='3d')
ax.scatter(X_points, Y_points, Z_points, s=20, alpha=0.5, color="red")
plt.show()
print(end-start)
if __name__ == '__main__':
print_love3D()
运行结果(需要等待一段时间):