圣诞树

import turtle
from turtle import *
import random
import time

#背景
turtle.speed("fastest")   # 定义速度
turtle.screensize(bg="black")  # 北京颜色
n = 80  # 画笔移动基数
turtle.pensize(3)  # 画笔宽度
turtle.setup(900,550)  # 画布大小
left(90)
forward(3 * n)
# 画五角形
def start():
    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 deng():
    if random.randint(10,50) == 10:
        color("tomato")
        circle(6)
    elif random.randint(10,50) == 50:
        color("yellow")
        circle(3)
    else:
        color("green")
# 写上字
def work():
    color("red")
    write("圣诞快乐",align="center",font=("Comic Sans MS",40,"bold"))

# 添加雪花
def snow():
    ht()  # 开启隐藏画笔模式
    for i in range(200):
        color("white")   # 设定颜色
        penup()   # 抬起画笔
        x_range = [-350,350]  #设定x 轴 区间
        y_range = [-100,350]  # 设定y轴 区间
        setx(random.randint(x_range[0],x_range[1]))  # 随机设定x 轴
        sety(random.randint(y_range[0],y_range[1])) # 随机设定y轴
        pendown()   # 落笔
        leasize = 6  # 雪花6 片
        szie = random.randint(1,8)   #随机雪花大小
        for n in range(leasize):            # 开始画
            forward(int(szie))
            backward(int(szie))
            right(int(360/leasize))

# 树叶
def tree_ye(d, s):  # 开始画树
    if d <= 0: return
    forward(s)
    tree_ye(d - 1, s * .8)
    right(120)
    tree_ye(d - 3, s * .5)
    deng()  # 同时调用小彩灯的方法
    right(120)
    tree_ye(d - 3, s * .5)
    right(120)
    backward(s)
start()
# 画树
color('dark green')  # 设置树的画笔颜色为深绿色
backward(n * 4.8)  # 向后画一条 self.base_num * 4.8的直线
tree_ye(15,n)
backward(n / 2)  # 向后画一条 self.base_num / 2的直线
work()
snow()
turtle.done()   #画完窗口不会消失
View Code

 

posted @ 2021-12-24 11:30  huxl1  阅读(29)  评论(0编辑  收藏  举报