程序员式优雅表⽩,教你⽤python代码画爱⼼
还能⽤python代码画爱⼼?还有这种操作?这是什么原理?
[dl]15-2203[/dl]
不相信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<=0 else' '))
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
基本就这样,有兴趣的同学可以将画⼼的函数都试⼀下.理论上都可以画出来。只不过有⼀些是极坐标,要做⼀些转换才⾏。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论