用turtle生成彩色圣诞树图片,有树,有雪,有星星
一、简介
本文将介绍如何使用Python的turtle库来生成一个彩色的圣诞树图片。我们将使用turtle库绘制树、雪花和星星,然后将其保存为图片文件。
二、准备工作
- 安装turtle库:在命令行中输入pip install PythonTurtle进行安装。
- 准备一张空白的图片作为背景。
- 准备一些彩色的笔刷,用于绘制树、雪花和星星。
三、代码实现
import turtle
import random
# 设置画布大小和背景颜色
screen = turtle.Screen()
screen.setup(800, 600)
screen.bgcolor("white")
# 创建画笔
pen = turtle.Turtle()
pen.speed(0)
pen.hideturtle()
# 绘制树
def draw_tree(branch_len):
    if branch_len > 5:
        pen.forward(branch_len)
        pen.right(20)
        draw_tree(branch_len - 15)
        pen.left(40)
        draw_tree(branch_len - 15)
        pen.right(20)
        pen.backward(branch_len)
# 绘制雪花
def draw_snowflake(size):
    for _ in range(6):
        pen.forward(size)
        pen.right(60)
        pen.forward(size)
        pen.left(120)
        pen.forward(size)
        pen.right(60)
        pen.backward(size)
        pen.right(60)
# 绘制星星
def draw_star(size):
    pen.color("yellow")
    pen.begin_fill()
    for _ in range(5):
        pen.forward(size)
        pen.right(144)
    pen.end_fill()
# 主程序
def main():
    # 绘制背景
    pen.color("skyblue")
    pen.begin_fill()
    pen.circle(300)
    pen.end_fill()
    # 绘制树
    pen.color("brown")
    pen.begin_fill()
    pen.left(90)
    pen.forward(200)
    draw_tree(100)
    pen.left(90)
    pen.backward(200)
    pen.end_fill()
    # 绘制雪花
    pen.color("white")
    for _ in range(100):
        x = random.randint(-350, 350)
        y = random.randint(-250, -150)
        size = random.randint(5, 15)
        pen.penup()
        pen.goto(x, y)
        pen.pendown()
        draw_snowflake(size)
    # 绘制星星
    pen.color("yellow")
    for _ in range(20):
        x = random.randint(-350, 350)
        y = random.randint(150, 250)
        size = random.randint(10, 20)
        pen.penup()
        pen.goto(x, y)
        pen.pendown()
        draw_star(size)
    # 保存图片
    screen.getcanvas().postscript(file="christmas_tree.eps", colormode='color')
    screen.mainloop()
if __name__ == "__main__":
    main()
四、运行结果
运行上述代码后,会在当前目录下生成一个名为christmas_tree.eps的图片文件。你可以使用其他图像处理软件打开该文件查看效果。











