python代码生成圣诞树

时间:2024-01-22 19:38:11

用turtle生成彩色圣诞树图片,有树,有雪,有星星

一、简介

本文将介绍如何使用Python的turtle库来生成一个彩色的圣诞树图片。我们将使用turtle库绘制树、雪花和星星,然后将其保存为图片文件。

二、准备工作

  1. 安装turtle库:在命令行中输入pip install PythonTurtle进行安装。
  2. 准备一张空白的图片作为背景。
  3. 准备一些彩色的笔刷,用于绘制树、雪花和星星。

三、代码实现

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的图片文件。你可以使用其他图像处理软件打开该文件查看效果。