Pythoner 的花式浪漫,你会吗?

简介: 一年一度的圣诞节又要到了,对于这个重大的节日,今年的外国人可能比较难,还处在水深火热之中,希望他们一切都赶快好起来。在我们国内,我们还可以像往年一样正常地过节,虽然是一个外国人的节日,但是每年在这个日子里,还是成就了不少鸳鸯的,也不失是一件好事。作为 Python 程序员,你还在送花、送苹果、送口红吗?有没有想过程序猿式的浪漫?本文就抛砖引玉,为大家提供一种思路,希望大家喜欢。

思路和实现

本文想通过 turtle 动态画图,向观看对象呈现一个动态绘制礼物的过程。一提到圣诞节,大家映入脑海中的肯定就是郁郁葱葱的绿色圣诞树,如果只是一棵圣诞树,未免也太平平无奇了,所以我准备在圣诞树的顶部加一颗爱心,来起到画龙点睛的作用。

我们从上往下画这个动图,所以第一步要画的是爱心。我将爱心分为两个半圆与一个正方形的组合,并且用粉红色来着色,我们来看看具体实现:

def loving_heart(r):
    l = 2 * r
    tur.left(45)
    tur.forward(l)
    tur.circle(r, 180)
    tur.right(90)
    tur.circle(r, 180)
    tur.forward(l)

爱心画完了,就要开始画圣诞树了,我们知道,圣诞树从树顶往下是一个对称的锥形,这么规则的形状,正是我们想要的,它简化了我们程序的逻辑。我们先画树的主干,然后再画小树枝,小树枝采用从上到下一层一层画的模式,每一层左右对称,并且画法相同,采用递归的方式来实现:

# 树函数(递归)
def tree(d, s):
    if d <= 0:
        return
    tur.forward(s)
    tree(d - 1, s * .8)
    tur.right(120)
    tree(d - 3, s * .5)
    tur.right(120)
    tree(d - 3, s * .5)
    tur.right(120)
    # 回退函数
    tur.backward(s)

画完这两部分之后,我们的爱心圣诞树就画好了,但是我们不能就这样结束,我们还需要加一句表白的语句或者祝福语(这个大家自由发挥啦),我这里就写了一句“Merry Christmas”作为示例。

整个作画的主程序是这样的:

# 画爱心部分
tur.penup()
# 设置起点位置
tur.goto(0, 200)
tur.pendown()
# 设置画笔颜色
tur.pencolor('pink')
tur.color('pink')
# 对图形进行填充
tur.begin_fill()
# 执行画爱心函数
loving_heart(20)
tur.end_fill()
# 画树部分
n = 100
tur.speed('fastest')
tur.right(225)
tur.color("dark green")
tur.backward(n * 4.8)
tree(15, n)
tur.backward(n / 5)
tur.penup()
tur.Turtle().screen.delay(2)
tur.goto(80, 0)
tur.pendown()
tur.color("gold")
tur.write("Merry Christmas!", font=("Times", 32, "bold"))
tur.hideturtle()

作画的过程我录制了一下,以便大家看看效果:



作画完成后,最终的效果是这样子的:

21.jpg

总结

本文以动态画一棵爱心圣诞树为例,为大家展现了程序猿式的浪漫,这个礼物的重点是要动态画,展现出画的过程,让非程序员女生能够感受到程序的神奇,而不是把最后的成品给她。当然啦,大家可以根据这个思路自由发挥,给自己心爱的她进行定制。反正我写程序的过程被女朋友看到了,然后她在一旁发出“哇哇,原来程序员还可以这样浪漫”的叫声。为了大家我也是拼了,提前泄露了天机,以至于我还需要再准备一份礼物了,大家觉得这种无私奉献的精神是不是值得点个“在看”呢?

目录
相关文章
|
前端开发 JavaScript
HTML+CSS+JAVASCRIPT实现——情人节表白情书
本文主要介绍如何使用HTML三件套来实现制作一封情人节表白情书,富含情谊与爱,打动女生的心灵
786 2
HTML+CSS+JAVASCRIPT实现——情人节表白情书
|
安全 iOS开发 UED
实战编程·刻在男人DNA里的浪漫,空气投篮(一)
实战编程·刻在男人DNA里的浪漫,空气投篮(一)
91 0
|
对象存储
七夕快到了,来创造一副浪漫的鹊桥插画吧
本次通过加载和推理SD模型对象存储OSS Bucket,挂载到PAI-EAS服务,实现模型部署,加载和推理SD模型,制作属于自己的七夕画作。
|
前端开发
零基础都能拿捏的七夕浪漫代码,快去表白或去制造惊喜吧
零基础都能拿捏的七夕浪漫代码,快去表白或去制造惊喜吧
124 0
|
人工智能 文字识别 算法
穿颜色成对的袜子,追最新的剧:这群coder正帮视障者移走身上的大山
穿颜色成对的袜子,追最新的剧:这群coder正帮视障者移走身上的大山
117 0
|
程序员
七夕来临,程序员该如何花式表白?html+css实现简单七夕表白
文章目录 1 效果展示 2 源码及环境 3 浅谈七夕 3.1 七夕由来 3.2 七夕风俗
七夕来临,程序员该如何花式表白?html+css实现简单七夕表白
|
程序员 Python
Pythoner 的花式浪漫,你会吗?
一年一度的圣诞节又要到了,对于这个重大的节日,今年的外国人可能比较难,还处在水深火热之中,希望他们一切都赶快好起来。在我们国内,我们还可以像往年一样正常地过节,虽然是一个外国人的节日,但是每年在这个日子里,还是成就了不少鸳鸯的,也不失是一件好事。作为 Python 程序员,你还在送花、送苹果、送口红吗?有没有想过程序猿式的浪漫?本文就抛砖引玉,为大家提供一种思路,希望大家喜欢。
123 0
Pythoner 的花式浪漫,你会吗?
|
算法
《C游记》 番外篇(壹)二分查找显神威 猜数游戏趣味生
《C游记》 番外篇(壹)二分查找显神威 猜数游戏趣味生
138 0
《C游记》 番外篇(壹)二分查找显神威 猜数游戏趣味生
520戏精上身!纸短情长,一句顶一万句的花式告白语抱走不谢!
520不认怂! 男生学了这招,再也不用担心找不到女朋友了!传说中成功率99%的表白语都在这儿。
下一篇
DataWorks