python代码生成圣诞树

266 阅读1分钟

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

一、简介

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

二、准备工作

  1. 安装turtle库:在命令行中输入pip install PythonTurtle进行安装。

  2. 准备一张空白的图片作为背景。

  3. 准备一些彩色的笔刷,用于绘制树、雪花和星星。

三、代码实现

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