一行代码实现心形字符画

2020-06-24 16:13:22 浏览数 (1)

效果

img

实现思路

将每一个字符设计为1个单位

循环一个区域 x ∈ [-30, 30) y ∈ [-15, 10)

根据心形公式 (x² y² - 1)³ - x³y³

当输入的 (x² y² - 1)³ - x³y³ < 0 说明在心形函数内,那么此时应输出内容

当(x² y² - 1)³ - x³y³ >= 0 则输出空格

Caveat

  1. js 实现 sleep 函数
代码语言:javascript复制
const sleep = (ms) => new Promise((resolve) => {setTimeout(() => {resolve()}, ms)});
  1. js for循环中无法执行异步代码,也就是说
代码语言:javascript复制
for (let y = -15; y < 10; y  ) {
  for (let x = -30; x < 30; x  ) {
    sleep(1000);
  }
}

这样的代码无法实现,sleep会在 for执行完成后在执行

为了解决这个问题,我通过递归函数来实现了循环,从而实现了字符一个一个打出来的打字机的效果

具体细节请看

项目地址: https://github.com/bilibiliou/one-line-js-code-draw-a-heart

如果觉得还行,还希望老板们 star 一波

Thanks

用 python 画爱心代码讲解

0 人点赞