程序员式优雅表白,教你用python代码画爱心
2020-03-11 17:41
711 查看
还能用python代码画爱心?还有这种操作?这是什么原理?
不相信python代码可以画爱心?先来一张效果图来看看效果吧!
用python代码画爱心的思路是怎样的?
1、怎么画心形曲线
2、怎么填满心形曲线
3、怎么用 python 画出爱心
接下来看好了,满满的都是干货,不收藏将是遗憾哦!
第一:怎么画心形曲线
这个最难的部分,前人已将大树栽好,我们只要记住公式,即可在大树下乘凉哦!
今天我们选用中上的那个图形,一起来看看吧!
第二:怎样填满爱心曲线?
简单说:函数=0 是一根线, 那线的左边跟右边就是大于 0 跟小于 0.
取x, y = 0 , 发现 函数 <=0 是成立的,先试试!
第三:怎么用 python 画出爱心?
我们先测试一下公式: , 把公式放到 python 中, 借助 sympy 这个库,确认这个公式是否可行。
from sympy import var, plot_implicit var('x y ') plot_implicit((x**2+(-y)**2-1)**3+x**2*(-y)**3)
效果如下图所示:(好像还不错哦)。
我们把一行画心的代码解析一下,是这样:
l2=[] # 将纵向每个字符当作 y 坐标的刻度 for y in range(15,-15,-1): l3 = [] # 将横向每个字符当作 x 坐标的刻度 for x in range(-30,30): # 如果 x,y 点在心形内,则将一个字符加入到行,否则加入空字符 l3.append((' I love U'[(x-y)%9]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0else' ')) l2.append(''.join(l3)) l1 ='\n'.join(l2) for i in l1: print("\033[91m"+i,end="",flush=True)
下面这段代码,是不是跟我们用的公式很像, 只不过做了 x y 轴的缩放:
((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0
下面这段代码的意思是:从 ' I love U' 里挑字符出来拼行. 为毛 x-y ? 只为了斜一点, 但要求是保证它的增速为 1 . 你用 x 也行 但画出来就是耿直的 I love U了。
' I love U'[(x-y)%9]
我们只需要将字符当作坐标刻度。去填满 即可!
最后就是 print
控制颜色:
\033[91m
基本就这样,有兴趣的同学可以将画心的函数都试一下.理论上都可以画出来。 只不过有一些是极坐标,要做一些转换才行。
(window.slotbydup = window.slotbydup || []).push({ id: "u5894387", container: "_0hv0l6ey3zro", async: true });相关文章推荐
- 代码这样写更优雅(Python 版)
- jquery+html5烂漫爱心表白动画代码分享
- 哪段儿代码更优雅,可读性更高,更Pythonic?
- 分享一下如何编写高效且优雅的 Python 代码
- python七夕表白代码(转载)
- 在RPA中优雅地写Python代码(二)
- 在RPA中优雅地写Python代码(一)
- 如何编写优雅(地道)的Python代码 - 第二部分
- 如何用 PEP 8 编写优雅的 Python 代码!
- 让你的python代码更加pythonic(简练、明确、优雅)
- python爱心表白 每天都是浪漫七夕!
- 短小精悍的python docstring as test的例子 doctest module,写优雅代码必备
- 让你的 Python 代码优雅又地道
- 代码这样写更优雅(Python 版)(转载)
- 让你的 Python 代码优雅又地道 【转载】Python开发者 2017-09-05
- 六行python代码的爱心曲线
- 优雅的写出python代码
- 如何编写优雅(地道)的Python代码 - 第三部分
- 还没有表白成功么?程序员教你如何用150行代码汇聚粒子爱心来脱单
- 让你的 Python 代码优雅又地道