首页 > 编程语言 >Python雪花代码

Python雪花代码

时间:2023-09-01 16:36:07浏览次数:40  
标签:turtle Turtle 画笔 Python 代码 雪花 ra self

Python雪花代码_Python


目录

系列文章

前言 

小海龟

雪花类 

画雪花 

移动函数 


前言 

用python画个雪花玩玩,完整代码在公众号Want595免费领取哈。

小海龟

老生常谈啦,在用python画樱花树前,我们先来了解一下turtle吧!

小海龟(Turtle)是Python中画图的一个重要的包(内置包),里面包含丰富的画图工具以及画图的各种功能,当你学会了用Turtle画图后,你可以画任何你想画的图案哦。

1.1 Turtle画板
Turtle的画板大小可以用turtle.screensize()函数来设置

turtle.screensize(width,height,bg)

Python雪花代码_python_02

设置画板的大小,包含宽和高,width为宽,height为高,bg为画布颜色

1.2 Turtle画笔
Turtle的画笔有几个常用的函数:

①turtle.penup():抬起画笔,此时移动画笔不会在画布上留下痕迹哦
②turtle.pendown():放下画笔,与turtle.penup相对应,放下画笔后就可以继续画画了(放下画笔后画画会在画布上留下痕迹)
③turtle.pensize():控制画笔的大小(可以根据需求自行定义画笔的大小哦)
④turtle.pencolor():控制画笔的颜色(可以自己在网上查阅所有python可以使用的颜色,python里面可以用的颜色有很多的哦)
⑤turtle.hideturtle():隐藏画笔(隐藏画笔以后画图时画笔就看不到了)

1.3 Turtle画图
在画图的过程中,我们经常要使用一些简单的移动函数:

①turtle.forward(x):将画笔向前移动x个像素(x可以理解为距离)
②turtle.backward(x):将画笔向后退x个像素(x可以理解为距离)
③turtle.left(n):将画笔向左旋转n度
④turtle.right(n):将画笔向右旋转n度
⑤turtle.speed():设置画笔画图的速度(1~10递增,0最快)

1.4 Turtle填色
在画好图后,我们经常需要对其进行填色,这里可以用turtle.fillcolor()函数,括号里写入你想填充的颜色即可。
在使用turtle.fillcolor()函数要注意其基本格式:

turtle.beginfill()     #开始填充
turtle.fillcolor()      #输入填充的颜色
turtle.endfill()        #结束填充

1.5 Turtle写字
在完成整个画图后,我们可以使用turtle.write()函数进行写字

turtle.write(" ",move,align,font)

Python雪花代码_Turtle_03

① 第一个位置双引号内填入要写的字
② move(可选):在默认情况下,move为false。如果move为true,则笔将移动到右下角
③ align(可选):可取值是left即左、center即中、right即右之一,是字符串格式
④ font(可选):字体三元组(fontname、fontsize、fonttype),fontname即字体名称(字符串格式,如“宋体”),fontsize即字体大小),fonttype即字体类型如:normal(普通)、bold(粗体)、italic(斜体)

雪花类 

class Snow():    #雪花类
    def __init__(self):
        self.r = 6                       #雪花的半径
        self.x = ra.randint(-1000,1000)   #雪花的横坐标
        self.y = ra.randint(-500,500)     #雪花的纵坐标
        self.f = ra.uniform(-3.14,3.14)   #雪花左右移动呈正弦函数
        self.speed = ra.randint(5,10)     #雪花移动速度
        self.color = ra.choice(colors)    #雪花的颜色
        self.outline = 5                 #雪花的大小

Python雪花代码_Python_04

画雪花 

def snow(self):                #画每个雪花
        x=self.r                   #雪花的半径
        t.pensize(self.outline)    #雪花的大小
        t.penup()                  #提笔
        t.goto(self.x,self.y)      #随机位置
        t.pendown()                #落笔
        t.color(self.color)        #雪花颜色
        for i in range(6):        #循环画六个雪花瓣
            t.forward(x*5)
            t.backward(x*2)
            t.left(60)
            t.forward(x*2)
            t.backward(x*2)
            t.right(120)
            t.forward(x*2)
            t.backward(x*2)
            t.left(60)
            t.backward(x*3)
            t.right(60)

Python雪花代码_Turtle_05

移动函数 

def move(self):                    #雪花移动函数
        if self.y >= -500:            #当雪花还在画布中时
            self.y -= self.speed     #设置上下移动速度
            self.x -= self.speed * math.sin(self.f)    #设置左右移动速度
            self.f -= 0.1            #可以理解成标志,改变左右移动的方向
        else:                        #当雪花漂出了画布时,重新生成一个雪花
            self.r = 6        
            self.x = ra.randint(-1000,1000)
            self.y = 500
            self.f = ra.uniform(-3.14,3.14)
            self.speed = ra.randint(5,10)
            self.color = ra.choice(colors)
            self.outline = 5

Python雪花代码_Python_06

标签:turtle,Turtle,画笔,Python,代码,雪花,ra,self
From: https://blog.51cto.com/want595/7324190

相关文章

  • python中nice的语句
    python中带范的语句*号操作符‘*’一般用作解包操作当在Python中使用*操作符时,它通常用于解包(unpacking)序列或集合,以便将其元素传递给函数或构造新的数据结构。以下是一些其他带有*操作符的常见用例示例:函数参数解包:defadd_numbers(a,b):returna+bnumbers......
  • 纯js实现以下代码
    题目<ul><li>1<li><li>2<li><li>3<li></ul>代码<!DOCTYPEhtml><htmllang="en"><head><metacharset="UTF-8"><metaname="viewport"con......
  • 程序员的线性代数教程!Jupyter 代码和视频可能更适合你
    红色石头的个人博客:www.redstonewill.com推荐一份适合程序员的线性代数教程,包含理论和源码。教程地址为:https://github.com/fastai/numerical-linear-algebra本教程的重点是以下问题:我们如何以可接受的速度和可接受的精度进行矩阵计算?这份教程来自于旧金山大学的分析学硕士2017暑......
  • Python中文版_Python中文版官方下载 中文版介绍
    python3软件介绍python是当今最流行的编程语言之一。它有广泛的领域和应用,从学习计算机科学的基础,到执行复杂或者直接的科学计算任务来创建游戏。它的高级应用甚至包含数据科学和量子计算。在新的版本中,python添加了独特且有价值的功能,同时删除了一些旧功能。我们可以将任何新软......
  • Lnton羚通视频分析算法平台OpenCV-Python直方图反向投影教程
    OpenCVPython直方图反向投影用于图像分割和查找感兴趣目标。简单的说,会创建一个与输入图像同样大小的图像(单通道),每个像素对应像素属于目标的概率。更简单的说就是,输出图像在感兴趣的目标处更白。常常与camshift算法一起使用,用于目标跟踪(查找目标)如何使用呢?创建一个图像的直方......
  • # yyds干货盘点 # 分享一个Python字符串替换的基础题目(上篇)
    大家好,我是皮皮。一、前言前几天在Python最强王者群【莫生气】问了一个Python字符串基础处理的问题,一起来看看吧。二、实现过程这里大家对于strip()函数理解不深刻的话,很容易犯迷糊,这里答案就是输出一个字符c。因为strip会把参数ab分开来一个个的删除,如果是strs.strip('abc')会把整......
  • Python运算符及其优先级顺序总结
    Python是一种被广泛使用的高级编程语言,它简单易学、功能强大,在Python语言中,运算符用于执行各种数学和逻辑运算的符号,不同运算符的优先级也各不相同,今天老男孩教育小编就带大家了解一下,请看下文:1、括号运算符(())括号运算符具有最高的优先级,它用于改变表达式的计算顺序......
  • Python的字符串操作——总结
    总结:1.f"{变量}" 格式化一个字符串2.索引和切片:  索引:从0开始的.[]  切片:s[start:end:step],end位置的数据永远拿不到3.相关操作:  字符串操作对原字符串是不发生改变的.  1.upper()在需要忽略大小写的时候  2.strip()可以去掉字符串左右......
  • Python 类的高级特性和使用方法
    Python是一种面向对象的编程语言,类是Python中最基本的面向对象概念之一。在创建类时,我们可以通过一些高级特性和使用方法来扩展类的功能和行为。本文将介绍一些常见的Python类高级特性,并提供具体的实例来说明其用法。继承继承是Python面向对象编程中一个非常重要的概念。......
  • 分享一个Python字符串替换的基础题目(上篇)
    大家好,我是皮皮。一、前言前几天在Python最强王者群【莫生气】问了一个Python字符串基础处理的问题,一起来看看吧。二、实现过程这里大家对于strip()函数理解不深刻的话,很容易犯迷糊,这里答案就是输出一个字符c。因为strip会把参数ab分开来一个个的删除,如果是strs.strip('abc......