🐍
python画圣诞树
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 创建
暂无介绍
Python
数据分析
可视化
Tkinter
Pandas
Matplotlib

相关项目

美国队长的盾牌

美国队长的盾牌

游戏
2020-10-28

Python二叉树

美丽的二叉树,递归算法的经典应用

故事
2020-12-16

画五角星

游戏
2025-05-21

python画圣诞树

游戏
2026-01-08
评论 0
暂无评论...