前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >程序员的圣诞节是怎么样的?

程序员的圣诞节是怎么样的?

作者头像
汀丶人工智能
发布2022-12-27 17:07:47
7220
发布2022-12-27 17:07:47
举报
文章被收录于专栏:NLP/KGNLP/KGNLP/KG

2022年圣诞节到来啦,很高兴这次我们又能一起度过~

一、前言

圣诞节,先在这里祝大家圣诞节快乐~~,用英语来表达就是 Merry Christmas ~~, 为了贴合这个氛围,今天分享种用 Python 绘制圣诞树的方法。 最近用代码绘画圣诞树的活动非常火,博主整理了目前较为流行的方法,

二、创意名

Merry Christmas ~~

三、效果展示

                    /\
                   /*#\
                  /   #\
                 /    * \
                /* # #*  \
               /   *#  ** \
              / ***  ##  ##\
             /  * # # ##*##*\
            /#  * * * *  # *#\
           /     * * #*#*#* **\
          /   *# ** *   # ####*\
         /# #* *         #  ## #\
        /  #* * #*# #*#   # * #**\
       /** #**#* ** ## #* ##*#* *#\
      / #   #*# ** *  # * #*# # *# \
     / *# *#*# #  # ##**   *##  #   \
    / #*##  *#  ##  *  * *##   * # * \
   / *    ##*#   #*   #*# ***   *   * \
  /#  ** *  *#*   #   ##  #      * # * \
 /   # ##*  # *    * #  # ** # #  # ##  \

四、编码实现

turtle库简介 python turtle库是一个绘图库,可以让你在python中使用turtle来绘制图形。它的使用方法非常简单,可以帮助初学者学习编程的基础知识。

首先,需要在你的python环境中安装turtle库。这可以通过在终端中使用命令 "pip install turtle" 来完成。

然后,在你的python代码中导入turtle模块。这可以通过使用 "import turtle" 来完成。

接下来,你就可以使用turtle中的方法来控制小海龟的移动和绘制图形了。例如,你可以使用 "turtle.forward(distance)" 来让海龟向前移动一段距离,使用 "turtle.left(angle)" 来让海龟向左转一个角度,使用 "turtle.right(angle)" 来让海龟向右转一个角度,使用 "turtle.pencolor(color)" 来设置海龟的画笔颜色,使用 "turtle.pensize(size)" 来设置海龟的画笔粗细等。

第一版

import random

print('\n'.join(' '*(20-i)+'/'+''.join(random.choice(' # *') for _ in range(2*i))+'\\' for i in range(20)))

第二版

from turtle import *
import random
import time
n = 80.0
speed("fastest")
screensize(bg='seashell')
left(90)
forward(3*n)
color("orange", "yellow")
begin_fill()
left(126)
for i in range(5):
    forward(n/5)
    right(144)
    forward(n/5)
    left(72)
end_fill()
right(126)
color("dark green")
backward(n*4.8)
def tree(d, s):
    if d <= 0: return
    forward(s)
    tree(d-1, s*.8)
    right(120)
    tree(d-3, s*.5)
    right(120)
    tree(d-3, s*.5)
    right(120)
    backward(s)
tree(15, n)
backward(n/2)
for i in range(200):
    a = 200 - 400 * random.random()
    b = 10 - 20 * random.random()
    up()
    forward(b)
    left(90)
    forward(a)
    down()
    if random.randint(0, 1) == 0:
            color('tomato')
    else:
        color('wheat')
    circle(2)
    up()
    backward(a)
    right(90)
    backward(b)
time.sleep(60)

最终版:

import turtle as t  # as就是取个别名,后续调用的t都是turtle
from turtle import *
import random as r
import time
 
n = 100.0
t.pensize(10)  # 修改画笔大小
speed("fastest")  # 定义速度
screensize(bg='black')  # 定义背景颜色,可以自己换颜色
left(90)
forward(3 * n)
color("orange", "yellow")  # 定义最上端星星的颜色,外圈是orange,内部是yellow
begin_fill()
left(126)
 
for i in range(5):  # 画五角星
    forward(n / 5)
    right(144)  # 五角星的角度
    forward(n / 5)
    left(72)  # 继续换角度
end_fill()
right(126)
 
 
def drawlight():  # 定义画彩灯的方法
    if r.randint(0, 30) == 0:  # 如果觉得彩灯太多,可以把取值范围加大一些,对应的灯就会少一些
        color('tomato')  # 定义第一种颜色
        circle(6)  # 定义彩灯大小
    elif r.randint(0, 30) == 1:
        color('orange')  # 定义第二种颜色
        circle(3)  # 定义彩灯大小
    else:
        linewidth = 5
        color('dark green')  # 其余的随机数情况下画空的树枝
 
 
color("dark green")  # 定义树枝的颜色
backward(n * 4.8)
 
 
def tree(d, s):  # 开始画树
    if d <= 0: return
    forward(s)
    tree(d - 1, s * .8)
    right(120)
    tree(d - 3, s * .5)
    drawlight()  # 同时调用小彩灯的方法
    right(120)
    tree(d - 3, s * .5)
    right(120)
    backward(s)
 
 
tree(15, n)
backward(n / 2)
 
for i in range(200):  # 循环画最底端的小装饰
    a = 200 - 400 * r.random()
    b = 10 - 20 * r.random()
    up()
    forward(b)
    left(90)
    forward(a)
    down()
    if r.randint(0, 1) == 0:
        color('tomato')
    else:
        color('wheat')
    circle(2)
    up()
    backward(a)
    right(90)
    backward(b)
 
t.color("dark red", "red")  # 定义字体颜色
t.write("Merry Christmas", align="center", font=("Comic Sans MS", 40, "bold"))  # 定义文字、位置、字体、大小
 
 
def drawsnow():  # 定义画雪花的方法
    t.ht()  # 隐藏笔头,ht=hideturtle
    t.pensize(2)  # 定义笔头大小
    for i in range(200):  # 画多少雪花
        t.pencolor("white")  # 定义画笔颜色为白色,其实就是雪花为白色
        t.pu()  # 提笔,pu=penup
        t.setx(r.randint(-350, 350))  # 定义x坐标,随机从-350到350之间选择
        t.sety(r.randint(-100, 350))  # 定义y坐标,注意雪花一般在地上不会落下,所以不会从太小的纵座轴开始
        t.pd()  # 落笔,pd=pendown
        dens = 6  # 雪花瓣数设为6
        snowsize = r.randint(1, 10)  # 定义雪花大小
        for j in range(dens):  # 就是6,那就是画5次,也就是一个雪花五角星
            # t.forward(int(snowsize))  #int()取整数
            t.fd(int(snowsize))
            t.backward(int(snowsize))
            # t.bd(int(snowsize))  #注意没有bd=backward,但有fd=forward,小bug
            t.right(int(360 / dens))  # 转动角度
 
 
drawsnow()  # 调用画雪花的方法
t.done()  # 完成,否则会直接关闭

作为最后一个版本,效果当然是这几个版本中最贴近于真实圣诞树的,装饰品、平安果,圣诞节礼物要啥有啥,此外漫天雪花、黑夜背景也被绘制出来了

1.叮咚,你的圣诞小精灵已送达2.这个圣诞没有等到雪 但等到你了3.圣诞节最好的礼物就是,见你一面4.希望圣诞快乐,不止圣诞这一天5.愿望清单中你是我最想要的未来 6.等圣诞的烟火,等你在人潮中走向我7.我是铃儿你是叮当,因为铃儿响叮当8.如果你愿意 我可以永远是你的圣诞老人9.把麋鹿挂在圣诞树上 把你挂在我的心上10.在等雪花圣诞树新年烟火和更好的我们11.积攒了许多星星,挂满圣诞树和漆黑的夜空12.在等雪花,圣诞树,新年烟火,和更好的你13.圣诞老爷爷昨天偷偷告诉我 你就是我的礼物14.世界上哪有圣诞老人,礼物都是来自爱你的人 15.圣诞老人是哪家快递的,活了十多年都没收到,差评!

圣诞文案:

1.

初雪和热咖啡,麋鹿和圣诞树,新年的钟声和倒数计时,所有糟糕的都是经历,所有的美好都会在最后相遇。

2.

圣诞前夜,把袜子翻过来,里朝外,挂起来,整个世界都是你的礼物。

3.

要不了多久,圣诞,初雪,新年烟火,这些美好与温柔都会如约而至。

4.

今年,我想送圣诞爷爷一个圣诞奶奶,这样明年我就可以收到双份礼物了。

5.

女巫用了解药,又是一个平安夜。

6.

如果在平安夜和圣诞节没收到我的礼物,请不要怀疑我们的感情,我只是穷而已。

7.

十二月有水晶球,有被雪铺满的夜晚,有星星点灯的灯光,有炉火旁的童话书,还有奇迹。

8.

圣诞节没有领到礼物的到我这里领个37°的拥抱吧

9.

刚刚有个男生发消息给我,要我的地址。我说要地址干嘛,他说其他小朋友都有圣诞礼物,我怕圣诞老人把你忘了。我的天哪,要不是这是我自己编的,我就感动哭了。

10.

我的圣诞愿望是:看到这篇文章并点赞的宝贝 暴富 恋爱 平安 健康 幸福!

11.

圣诞节老人本来打算给你们送礼物,结果发现他妈的一个都没睡。

12.

希望快乐不止圣诞这一天

13.

我是铃儿 你是叮当 因为铃儿想叮当

14.

世上本无圣诞老人,所有的惊喜和礼物都来自你爱的人。

15.

圣诞老爷爷昨天偷偷告诉我,你就是我的礼物。

16.

想给每个善良的人一顶圣诞帽,愿这顶帽子成为他们的睡帽,从此每个安睡的日子都叫平安夜。

17.

如果有一个白胡子老爷爷把你打晕装进麻袋里,别怕,因为你是我想要的圣诞礼物。

18.

圣诞的每一片雪花,都是冬天的来信

19.

积攒了许多星星,分别挂满圣诞树和漆黑的夜空。

20.

把我的小心思,偷偷塞进礼物盒,在圣诞节那一天,通通送给你。

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2022-12-26,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、前言
  • 二、创意名
  • 三、效果展示
  • 四、编码实现
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档