page contents

圣诞节,用代码画颗圣诞树吧!

圣诞节来了,今天六星教育就来教教大家如何用Python画圣诞树吧~

attachments-2021-12-ohDjBegm61c672cfd5a54.png

圣诞节来了,今天六星教育就来教教大家如何用Python画圣诞树吧~

attachments-2021-12-HixIM9ob61c671ad816f1.png效果:

attachments-2021-12-8mFQs8PB61c671b695f29.png哈哈哈哈,总有一种骗了大家的感觉。

其实本文是想介绍Turtle库来画圣诞树。


方法一:


 1import turtle
 2screen = turtle.Screen()
 3screen.setup(800,600)
 4circle = turtle.Turtle()
 5circle.shape('circle')
 6circle.color('red')
 7circle.speed('fastest')
 8circle.up()
 9square = turtle.Turtle()
10square.shape('square')
11square.color('green')
12square.speed('fastest')
13square.up()
14circle.goto(0,280)
15circle.stamp()
16k = 0
17
for i in range(117):
18    y = 30*i
19    for j in range(i-k):
20        x = 30*j
21        square.goto(x,-y+280)
22        square.stamp()
23        square.goto(-x,-y+280)
24        square.stamp()
25    if i % 4 == 0:
26        x = 30*(j+1)
27        circle.color('red')
28        circle.goto(-x,-y+280)
29        circle.stamp()
30        circle.goto(x,-y+280)
31        circle.stamp()
32        k += 2
33    if i % 4 == 3:
34        x = 30*(j+1)
35        circle.color('yellow')
36        circle.goto(-x,-y+280)
37        circle.stamp()
38        circle.goto(x,-y+280)
39        circle.stamp()
40square.color('brown')
41for i in range(17,20):
42    y = 30*i
43    for j in range(3):
44        x = 30*j
45        square.goto(x,-y+280)
46        square.stamp()
47        square.goto(-x,-y+280)
48        square.stamp()
49turtle.exitonclick()

效果:

attachments-2021-12-yqSjU4fl61c671e24582d.png
方法二:


1from turtle import *
 2import random
 3import time
 4
 5n = 80.0
 6
 7speed("fastest")
 8screensize(bg='seashell')
 9left(90)
10forward(3*n)
11color("orange""yellow")
12begin_fill()
13left(126)
14
15for i in range(5):
16    forward(n/5)
17    right(144)
18    forward(n/5)
19    left(72)
20end_fill()
21right(126)
22
23color("dark green")
24backward(n*4.8)
25def tree(d, s):
26    if d <= 0return
27    forward(s)
28    tree(d-1, s*.8)
29    right(120)
30    tree(d-3, s*.5)
31    right(120)
32    tree(d-3, s*.5)
33    right(120)
34    backward(s)
35tree(15, n)
36backward(n/2)
37
38for i in range(200):
39    a = 200 - 400 * random.random()
40    b = 10 - 20 * random.random()
41    up()
42    forward(b)
43    left(90)
44    forward(a)
45    down()
46    if random.randint(01) == 0:
47            color('tomato')
48    else:
49        color('wheat')
50    circle(2)
51    up()
52    backward(a)
53    right(90)
54    backward(b)
55time.sleep(60)


效果:

attachments-2021-12-JMeudYYB61c6721ed5ad7.png

方法三:


还可以在二的基础上更改背景,加上下雪特效!

如下所示:


 1# 画雪花关键代码

 2def drawsnow():      # 定义画雪花的方法

 3t.ht()           # 隐藏笔头,ht=hideturtle

 4    t.pensize(2)     # 定义笔头大小

 5    for i in range(200):     # 画多少雪花

 6        t.pencolor("white")  # 定义画笔颜色为白色,其实就是雪花为白色

 7        t.pu()  # 提笔,pu=penup

 8        t.setx(r.randint(-350, 350))  # 定义x坐标,随机从-350到350之间选择

 9        t.sety(r.randint(-100, 350))  # 定义y坐标,注意雪花一般在地上不会落下,所以不会从太小纵座轴开始

10        t.pd()    # 落笔,pd=pendown

11        dens= 6  # 雪花瓣数设为6

12        snowsize = r.randint(1, 10)  # 定义雪花大小

13        for j in range(dens):        # 就是6,那就是画5次,也就是一个雪花五角星

14            # t.forward(int(snowsize))  #int()取整数

15            t.fd(int(snowsize))

16            t.backward(int(snowsize))

17            # t.bd(int(snowsize))  #注意没有bd=backward,但有fd=forward,小bug

18            t.right(int(360 /dens))  # 转动角度

19   

20

21drawsnow()  # 调用画雪花的方法

效果:
attachments-2021-12-9hjmgTNL61c672577e72a.png更多相关技术内容咨询欢迎前往并持续关注六星社区了解详情。

如果你想用Python开辟副业赚钱,但不熟悉爬虫与反爬虫技术,没有接单途径,也缺乏兼职经验
关注下方微信公众号:Python编程学习圈,获取价值999元全套Python入门到进阶的学习资料以及教程,还有Python技术交流群一起交流学习哦。
attachments-2022-06-QiM5EjYB62b26e05a82a0.jpeg
  • 发表于 2021-12-25 09:25
  • 阅读 ( 376 )
  • 分类:Python开发

你可能感兴趣的文章

相关问题

0 条评论

请先 登录 后评论
轩辕小不懂
轩辕小不懂

2403 篇文章

作家榜 »

  1. 轩辕小不懂 2403 文章
  2. 小柒 1474 文章
  3. Pack 1135 文章
  4. Nen 576 文章
  5. 王昭君 209 文章
  6. 文双 71 文章
  7. 小威 64 文章
  8. Cara 36 文章