import turtle
import random
# 设置屏幕
screen = turtle.Screen()
screen.bgcolor("navy") # 深蓝色背景
screen.title("圣诞树")
# 创建海龟
tree = turtle.Turtle()
tree.speed(0)
tree.color("green")
# 画树干
def draw_trunk():
tree.penup()
tree.goto(0, -200)
tree.pendown()
tree.color("brown")
tree.begin_fill()
for _ in range(2):
tree.forward(20)
tree.left(90)
tree.forward(40)
tree.left(90)
tree.end_fill()
# 画三角形层
def draw_triangle(size, y):
tree.penup()
tree.goto(-size, y)
tree.pendown()
tree.color("green")
tree.begin_fill()
for _ in range(3):
tree.forward(size * 2)
tree.left(120)
tree.end_fill()
# 画整棵树
def draw_tree():
draw_trunk()
# 画三层三角形
layers = [(120, -160), (90, -100), (60, -50)]
for size, y in layers:
draw_triangle(size, y)
# 画装饰球
def draw_ornaments():
ornaments_positions = [
(0, 0, "red"), (-40, -30, "gold"), (40, -30, "blue"),
(-20, -80, "purple"), (20, -80, "pink"), (-60, -130, "orange"),
(60, -130, "cyan"), (0, -130, "yellow")
]
for x, y, color in ornaments_positions:
tree.penup()
tree.goto(x, y)
tree.pendown()
tree.color(color)
tree.begin_fill()
tree.circle(8)
tree.end_fill()
# 画星星
def draw_star():
tree.penup()
tree.goto(0, 60)
tree.pendown()
tree.color("yellow")
tree.begin_fill()
for _ in range(5):
tree.forward(30)
tree.right(144)
tree.end_fill()
# 画雪花
def draw_snowflakes():
snow = turtle.Turtle()
snow.speed(0)
snow.color("white")
snow.penup()
for _ in range(50):
x = random.randint(-300, 300)
y = random.randint(-200, 300)
snow.goto(x, y)
snow.pendown()
snow.dot(random.randint(2, 6))
snow.penup()
# 画礼物
def draw_gifts():
gifts = [
{"pos": (-80, -220), "color": "red", "size": 40},
{"pos": (40, -220), "color": "green", "size": 50},
{"pos": (-150, -220), "color": "gold", "size": 30}
]
for gift in gifts:
tree.penup()
tree.goto(gift["pos"])
tree.pendown()
tree.color(gift["color"])
tree.begin_fill()
for _ in range(2):
tree.forward(gift["size"])
tree.left(90)
tree.forward(gift["size"]/2)
tree.left(90)
tree.end_fill()
# 画丝带
tree.penup()
tree.goto(gift["pos"][0] + gift["size"]/2, gift["pos"][1])
tree.pendown()
tree.color("yellow")
tree.width(3)
tree.goto(gift["pos"][0] + gift["size"]/2, gift["pos"][1] + gift["size"]/2)
tree.penup()
tree.goto(gift["pos"][0], gift["pos"][1] + gift["size"]/4)
tree.pendown()
tree.goto(gift["pos"][0] + gift["size"], gift["pos"][1] + gift["size"]/4)
# 主函数
def main():
# 隐藏海龟
tree.hideturtle()
# 绘制各个部分
draw_tree()
draw_ornaments()
draw_star()
draw_snowflakes()
draw_gifts()
# 添加祝福语
tree.penup()
tree.goto(0, -280)
tree.color("white")
tree.write("圣诞快乐!", align="center", font=("Arial", 24, "bold"))
# 保持窗口打开
turtle.done()
if __name__ == "__main__":
main()
项目描述
由 小贝鼠 于
2026-01-08 创建




