黑白爱心图形打印,内容只有英文字符才能完整描绘心形

def A(S,b):
    s="\n".join(["".join([(S[(x-y) % len(S)] \
    if ((x*0.04)**2+(0.1*y)**2-1)**3-(x*0.04)**b*(0.1*y)**3 \
    <=0 else " ") for x in range(-30,30)]) \
        for y in range(30,-20,-1)])
    print(s)
S='I Love You,Baby!'
A(S,2)

d9f15a039c4748f2909e5a70aef3c6e5.png

 用汉字和表情就会变形,此时的心形函数参数不再适用

8d750dd9d10b4d8098fb1e8affab42e4.png

fdb0a844433a4231b3d6ada6b53af31f.png

彩色动态爱心打印

turtle 模块以面向对象和面向过程的方式提供 turtle 图形基元,使用Tkinter作为基础图形,不过turtle模块为python标准库,是自带的

在这篇文章中弹窗的实现也使用了tkinter模块

python几行代码轻松实现多重弹窗趣味整蛊小程序_ASS-ASH的博客-CSDN博客

import turtle

A='我喜欢你呀!小猪猪!'             #爱心中心显示的内容

def C():
    for i in range(200):
        turtle.right(1)
        turtle.forward(2)

turtle.setup(width=900,height=600)  # 画布大小
turtle.color('pink','red')          # 爱心图案中心颜色及边缘颜色
turtle.pensize(8)                   # 画笔粗细
turtle.speed(10)                    # 绘制速度
turtle.up()                         
turtle.hideturtle()
turtle.goto(0,-180)
turtle.showturtle()
turtle.down()
turtle.speed(10)
turtle.begin_fill()

turtle.left(140)
turtle.forward(224)
C()
turtle.left(120)
C()
turtle.forward(224)
turtle.end_fill()
turtle.pensize(5)
turtle.up()
turtle.hideturtle()
turtle.goto(0,0)
turtle.showturtle()
turtle.color('blue')                #爱心中心内容的颜色
turtle.write(A,font=('gungsuh',30,),align="center")
turtle.up()
turtle.hideturtle()
window=turtle.Screen()     #锁定画布屏幕范围
window.exitonclick()       #单击退出



 关于绘制速度turtle.speed()

turtle 的速度介于0到10之间

  • 速度字符串与速度值对应方式:
  • ‘fastest’:0
  • ‘fast’:10
  • ‘normal’:6
  • ‘slow’:3
  • ‘slowest’:1

其实实际速度差不多,反正不能秒画完成

结果如下:(红色-蓝色,红色-绿色,红色-黑色,红色-黄色,红色-白色等都在图形中显示得比较清晰)

结果图为外圈边缘色为粉色,内部整个爱心为红色效果图,即第一个turtle.color(pink,red)的设定,第二个turtle.color(blue)即为文字内容颜色

79d52318c8f247d9873fa44af02ac8b3.png

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐