Python3 利用心形线函数打印心形

在生活中的各种情况下都能看到心形,直到看到一行 python 代码实现了心形,至此,停下来慢慢思考了一下。

心形有很多,比如

选择图中看起来最简单的一个心形曲线来分析,也就是

心形打印分析

  • 将字符串分割成列表
  • 嵌套两个 for 循环,绘制出直角坐标系网格
  • 计算心形函数,将函数内(结果<=0)的部分填充字符,函数外填充空格
  • 逐行追加到列表中
  • 打印输出

代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
words = 'zerolovely'

for word in words.split():
finalChar = []
for y in range(15, -15, -1):
col = []
col_content = ''
for x in range(-30, 30):
sum = ((x * 0.04) ** 2 + (y * 0.1) ** 2 - 1) ** 3 - (x * 0.04) ** 2 * (y * 0.1) ** 3
if sum <= 0:
col_content += word[(x - y) % len(word)]
else:
col_content += ' '
col.append(col_content)
finalChar += col
print("\033[91m"+'\n'.join(finalChar))

实现效果