首页 > 编程语言 >5种Python雪花飘落代码(建议收藏)

5种Python雪花飘落代码(建议收藏)

时间:2024-01-04 18:34:07浏览次数:27  
标签:turtle draw Python random 雪花 飘落 snowflake size

第一种

普通雪花代码:

import turtle
import random
 
def draw_snowflake(length, depth):
    if depth == 0:
        turtle.forward(length)
        return
    length /= 3.0
    draw_snowflake(length, depth-1)
    turtle.left(60)
    draw_snowflake(length, depth-1)
    turtle.right(120)
    draw_snowflake(length, depth-1)
    turtle.left(60)
    draw_snowflake(length, depth-1)
 
turtle.speed(0)
turtle.penup()
turtle.goto(-200, 200)
turtle.pendown()
 
for i in range(3):
    draw_snowflake(400, 4)
    turtle.right(120)
 
turtle.hideturtle()
turtle.done()

第二种

随机下落的雪花:

import pygame, random
 
# 初始化 Pygame
pygame.init()
 
# 创建屏幕
screen = pygame.display.set_mode((800, 600))
pygame.display.set_caption("Python 雪景")
 
# 定义颜色
WHITE = (255, 255, 255)
 
# 创建雪花列表
snow_list = []
for i in range(300):
    x = random.randrange(0, 800)
    y = random.randrange(0, 600)
    snow_list.append([x, y])
 
# 创建时钟对象
clock = pygame.time.Clock()
 
# 循环标志
done = False
 
# 游戏循环
while not done:
    # 处理事件
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            done = True
 
    # 填充屏幕为白色
    screen.fill(WHITE)
 
    # 循环雪花列表
    for i in range(len(snow_list)):
        # 绘制雪花
        pygame.draw.circle(screen, WHITE, snow_list[i], 2)
 
        # 移动雪花
        snow_list[i][1] += 1
 
        # 雪花超出屏幕,重置位置
        if snow_list[i][1] > 600:
            y = random.randrange(-50, -10)
            snow_list[i][1] = y
            x = random.randrange(0, 800)
            snow_list[i][0] = x
 
    # 更新屏幕
    pygame.display.flip()
 
    # 控制帧率
    clock.tick(60)
 
# 退出 Pygame
pygame.quit()

第三种

随机颜色代码:

import turtle
import random
 
colors = ["blue", "purple", "cyan", "white", "yellow", "orange"]
 
turtle.speed(0)
turtle.bgcolor("black")
 
for i in range(10):
    color = random.choice(colors)
    turtle.color(color)
    turtle.pensize(i / 2 + 1)
    turtle.forward(100)
    turtle.right(120)
 
turtle.done()

使用了turtle模块和random模块,会在黑色背景上生成随机颜色的雪花。你可以根据需要调整colors列表中的颜色,来生成你想要的效果。

第四种

包含三种大小的Python雪花代码:

import turtle
import random
 
# Set up the screen
wn = turtle.Screen()
wn.bgcolor("black")
wn.title("Snow")
 
# Create a variable for the number of snowflakes
num_snowflakes = 100
 
# Create a list of colors
colors = ["white", "lightgray", "gray"]
 
# Create a function to draw snowflakes
def draw_snowflake(size):
    # Draw a hexagon
    for i in range(6):
        turtle.forward(size)
        turtle.right(60)
        turtle.forward(size)
        turtle.right(120)
    # Draw a dot in the center
    turtle.dot(size // 2)
 
# Create a loop to draw the snowflakes
for i in range(num_snowflakes):
    # Move to a random position on the screen
    x = random.randint(-300, 300)
    y = random.randint(-300, 300)
    turtle.penup()
    turtle.goto(x, y)
    turtle.pendown()
    # Draw a snowflake with a random size and color
    size = random.randint(5, 25)
    color = random.choice(colors)
    turtle.color(color)
    draw_snowflake(size)
 
# Hide the turtle
turtle.hideturtle()
 
# Keep the screen open until it is closed manually
turtle.done()

使用了turtle模块来绘制雪花。首先设置画布的背景色和标题。接着定义了一个draw_snowflake函数,用于绘制雪花。在主循环中,使用random模块来生成随机位置、大小和颜色的雪花,最后隐藏了画笔,使得只显示雪花。

第五种

用Python的turtle库来画雪花形状:

import turtle
 
# 设置画布和画笔
wn = turtle.Screen()
wn.bgcolor("black")
wn.title("Snowflake")
 
pen = turtle.Turtle()
pen.speed(0)
pen.color("white")
 
# 画雪花形状
def snowflake(size):
    if size <= 10:
        pen.forward(size)
        return
    else:
        snowflake(size/3)
        pen.left(60)
        snowflake(size/3)
        pen.right(120)
        snowflake(size/3)
        pen.left(60)
        snowflake(size/3)
 
# 画三个不同大小的雪花
pen.penup()
pen.goto(-200, 0)
pen.pendown()
snowflake(300)
 
pen.penup()
pen.goto(0, 0)
pen.pendown()
snowflake(200)
 
pen.penup()
pen.goto(200, 0)
pen.pendown()
snowflake(100)
 
# 关闭画布
wn.exitonclick()

这个代码将会在黑色背景上绘制白色雪花。使用递归函数来生成雪花的形状,大小为参数“size”。

标签:turtle,draw,Python,random,雪花,飘落,snowflake,size
From: https://blog.51cto.com/u_16496164/9103632

相关文章

  • 软件测试/测试开发|什么是Python,我们为什么选择Python?
    简介要说最近几年,哪个编程语言是最受欢迎的?学习人数最多的?那非Python莫属,加上人工智能时代的到来,Python热度就更加持续,那么Python为什么能够超越Java和C语言,成为现在最受欢迎的语言呢?本文就带大家一探究竟。Python简介Python发展背景Python是一种高级编程语言,由荷兰人吉多·范罗苏......
  • Python 中的变量如何定义和使用
    Python是一种解释性语言,它使用动态类型系统,这意味着变量的类型不需要在定义时显式指定,而是根据变量的值来推断其类型。在Python中,变量可以存储各种类型的数据,如字符串、整数、浮点数、布尔值、列表、元组、字典等。本文将介绍Python中变量的定义和使用,包括变量命名规则、变量赋值、......
  • 有哪些常用的 Python 模块需要进行安装
    Python是一种高级编程语言,它提供了许多标准库和第三方库,可以帮助我们更快、更高效地编写程序。在Python中,模块是一组相关的函数、类和变量的集合,可以通过导入模块来使用其中的功能。本文将介绍一些常用的Python模块,需要进行安装才能使用。一、NumPyNumPy是一个用于科学计算的Python......
  • 如何在 Geany 中添加对 Python 语言的支持
    Geany是一个轻量级的集成开发环境(IDE),它支持多种编程语言,包括Python。在Geany中添加对Python语言的支持可以提供更好的代码编辑和调试体验。下面是在Geany中添加对Python语言支持的步骤:步骤一:安装Python首先,确保已在您的计算机上安装了Python。安装完成后,可以在命令行中输入`python-......
  • python 中的 numpy 库为什么无法使用
    Python中的NumPy库是一个重要的科学计算库,它提供了高效的数值计算工具和数据结构,被广泛用于数据科学、统计学、机器学习等领域。如果无法使用NumPy库,可能是由于以下原因导致的:1.未安装NumPy库在使用NumPy库之前,需要先安装该库。可以通过pip工具来安装NumPy库,执行以下命令即可:```pi......
  • Python 开发中有哪些常见的编程错误需要注意
    在Python开发中,常常会遇到各种编程错误。这些错误可能导致程序崩溃、产生错误的输出或者不符合预期的行为。为了提高代码质量和减少错误,以下是一些常见的编程错误和注意事项:1.语法错误语法错误是最常见的编程错误之一,它通常是由于拼写错误、缺少冒号、括号不匹配等导致的。为了避免......
  • 如何处理 Python 爬虫中的反爬机制
     在网络爬虫的开发过程中,我们常常会遇到网站的反爬机制,这些反爬机制旨在阻止爬虫程序对网站内容的访问。为了成功绕过这些反爬机制,我们需要采取一系列的策略和技术手段。本文将介绍一些常见的反爬机制,并提供相应的应对方法。 1.User-Agent检测 User-Agent是HTTP请求头中的一个......
  • PythonQt简明教程
    PythonQt简明教程PythonQt是Qt框架的Python动态绑定,是一种将Python脚本语言嵌入C++Qt应用程序的简便方法。与PyQt、PySide不同,PythonQt侧重点在于将Python嵌入到现有的C++应用程序,而不是使用Python编写应用程序。接口PythonQt的主要接口通过PythonQt::self()单例提供,并由Pytho......
  • # yyds干货盘点 # 盘点一个工作中Python自动化处理实战问题(番外篇)
    大家好,我是皮皮。一、前言前几天在Python最强王者交流群【哎呦喂 是豆子~】问了一个工作中Python自动化处理实战问题,一起来看看吧。问题描述:数据在提供的数据表中,在表有编号、环节、审核人、金额、结束时间5列,对【编号、环节、审核人、金额】四条件进行分组,分组内结束时间升序排列......
  • Python实现post请求虾皮shopee商品列表API
    Shopee平台商品列表数据接口是一种用于获取Shopee平台上商品列表信息的API接口。通过调用该接口,用户可以获取到商品的基本信息,如商品ID、商品名称、商品价格等。以下是一个示例的Shopee平台商品列表数据接口的请求和返回示例:Shopee.item_search-获取虾皮商品列表数据接口返回值说明......