教你如何用python画爱心代码_程序员式优雅表白,教你用python代码画爱心

还能用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<=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

基本就这样,有兴趣的同学可以将画心的函数都试一下.理论上都可以画出来。 只不过有一些是极坐标,要做一些转换才行。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,让我来你如何用Python一个旺仔吧! 首先,需要导入turtle库,这是Python自带的一个简单的绘图库,可以用来绘制基本的图形。 ```python import turtle ``` 接下来,我们需要设置布大小和背景颜色: ```python turtle.setup(800, 600) turtle.bgcolor('white') ``` 然后,我们可以定义一些函数来绘制旺仔的各个部分。比如,我们可以用turtle库提供的circle函数来绘制旺仔的头部: ```python def draw_head(): turtle.penup() turtle.goto(0, 100) turtle.pendown() turtle.circle(50) ``` 同样的,我们可以定义其他的函数来绘制旺仔的身体、手、脚等部分。这里就不一一列举了,可以根据实际需要自行定义。 最后,我们可以在主函数中调用这些函数,将旺仔的各个部分组合起来: ```python def main(): draw_head() draw_body() draw_lhand() draw_rhand() draw_lfoot() draw_rfoot() turtle.done() if __name__ == '__main__': main() ``` 完整的代码如下: ```python import turtle def draw_head(): turtle.penup() turtle.goto(0, 100) turtle.pendown() turtle.circle(50) def draw_body(): turtle.penup() turtle.goto(0, 50) turtle.pendown() turtle.circle(100) def draw_lhand(): turtle.penup() turtle.goto(-50, 0) turtle.pendown() turtle.forward(50) def draw_rhand(): turtle.penup() turtle.goto(50, 0) turtle.pendown() turtle.forward(50) def draw_lfoot(): turtle.penup() turtle.goto(-50, -100) turtle.pendown() turtle.forward(50) def draw_rfoot(): turtle.penup() turtle.goto(50, -100) turtle.pendown() turtle.forward(50) def main(): turtle.setup(800, 600) turtle.bgcolor('white') draw_head() draw_body() draw_lhand() draw_rhand() draw_lfoot() draw_rfoot() turtle.done() if __name__ == '__main__': main() ``` 运行程序后,就可以看到一个简单的旺仔图案了。你可以根据自己的需求,修改代码来绘制更复杂的图案。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值