首页 > 编程语言 >python代码生成圣诞树

python代码生成圣诞树

时间:2024-01-22 11:59:32浏览次数:25  
标签:turtle 代码生成 draw python random pen 圣诞树 绘制 size

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

标签:turtle,代码生成,draw,python,random,pen,圣诞树,绘制,size
From: https://www.cnblogs.com/bigleft/p/17979731

相关文章

  • 从零搭建完整python自动化测试框架(UI自动化和接口自动化 )
    从零搭建完整python自动化测试框架(UI自动化和接口自动化)本自动化测试框架采用python+unittest的基础来搭建,采用PO模式、数据驱动的思想,通过selenium来实现WEBUI自动化,通过request来实现接口自动化。移动终端的自动化也可在该框架基础上去构建补充。 总体框架总体框架......
  • python 多线程multiprocessing
    该多线程,简单计算结果可以使用,在django里想并行处理多个实体进行计算不行,请自行验证importmultiprocessing#要在进程池中并行执行的任务函数defprocess_data(data):#执行任务的逻辑result=data*2returnresultif__name__=='__main__':#创......
  • python redis示例
    Redis是一个基于内存的高性能键值对(key-value)存储系统,同时也支持丰富的数据结构,如字符串、哈希表、列表、集合、有序集合等。在Python中,我们通常使用redis-py这个第三方库来连接和操作Redis。以下是一个基本的使用步骤以及各种数据结构操作的示例:1.安装redis-py库pipinstall......
  • sqlglot python sql 解析以及翻译工具
    sqlglot实际上是由和sqlmesh一个团队开发的就用python的sql解析以及翻译工具,功能还是比较强大的支持20多种sql方言的格式化以及翻译,sqlmesh就使用了此工具包,当然相比其他一些工具,性能也是很不错的参考资料https://github.com/tobymao/sqlglothttps://sqlglot.com/sqlglot.html......
  • Python requests连接池超出错误urllib3.connectionpool:Connection pool is full disc
    今天在进行多线程请求的时候出现问题,但是是警告,不过会导致把其他请求给关闭掉,严重影响效率,在网上搜了一大堆都是说urllib3的,没有说requests的。WARNING:urllib3.connectionpool:Connectionpoolisfull,discardingconnection:450632824.shop.n.weimob.com.Connectionpools......
  • Python 字符串不可变性的优缺点
    随着计算机技术的快速发展,越来越多的编程语言被发明出来,每种编程语言都有自己独特的特点和优势。以我经常使用python写爬虫为例,在Python中,字符串是不可变的,这意味着一旦字符串被创建,就不能被修改。这与其他一些编程语言(如C++和Java)不同,在这些语言中,字符串是可以被修改的。对于......
  • python3使用socket模块实现简易syslog服务器
    废话不多说直接上代码1importsocket2importtime345defsocket_bind(server_socket,host,port=514,max_retries=5):6retries=07whileretries<max_retries:8try:9server_socket.bind((host,port))10......
  • python 类
    Python的类提供了面向对象编程的所有标准特性:⑴类继承机制允许多个基类,派生类可以覆盖它基类的任何方法,一个方法可以调用基类中相同名称的的方法⑵对象可以包含任意数量和类型的数据⑶和模块一样,类也拥有Python天然的动态特性:它们在运行时创建,可以在创建后修改......
  • ubuntu定时运行python脚本
    要在Ubuntu上每隔一小时运行一个脚本,你可以使用cron作业调度器。以下是步骤:方法打开终端。输入以下命令以编辑crontab文件:crontab-e在打开的编辑器中,添加以下行来每隔一小时运行你的脚本:0****/path/to/python/path/to/resource_chat_push_server.py请确......
  • Python Matplotlib 常见图形绘制
    ​ 参考文档:PythonMatplotlib常见图形绘制-CJavaPy1、折线图(LinePlot)绘制折线图(LinePlot)是一项基础且常用的功能。折线图非常适合展示数据随时间或其他连续变量变化的趋势。使用plt.plot() 函数用于在坐标轴上绘制折线图(LinePlot),它提供了多种参数来自定义图像的外观。......