python使用Turtle库画画写名字

 更新时间:2021年09月23日 16:39:25   作者:轮回摆渡者  
Turtle库是Python语言中一个很流行的绘制图像的函数库,本篇文章小编就带大家学习python利用Turtle库画画写名字的相关资料,需要的朋友可以参考下面文章的具体内容

Turtle库是Python语言中一个很流行的绘制图像的函数库,利用这个库会生成一个画布,在画布中有我们看不见的一个默认以中心点为原点的坐标轴,在原点会有一个初始默认朝东的画笔(箭头),一般我们把这个箭头叫做海龟,箭头的朝向就是海龟头的朝向。

这个动图展示的就是我利用Turtle库画的一个名字画,下面附上代码:

import time
import turtle
from random import random

t = turtle
t.speed(3)
t.hideturtle()
t.color('black')
t.pensize(10)

# 一
t.penup()
t.goto(-110, 60)
t.pendown()
t.forward(100)

# |
t.penup()
t.goto(-60, 125)
t.right(90)
t.pendown()
t.forward(266)

# 丿
t.penup()
t.goto(-60, 45)
t.right(45)
t.pendown()
t.forward(90)

# 丶
t.penup()
t.goto(-60, 38)
t.left(90)
t.pendown()
t.forward(40)

# 小一
t.penup()
t.goto(20, 60)
t.left(45)
t.pendown()
t.forward(90)

# |
t.penup()
t.goto(65, 123)
t.right(90)
t.pendown()
t.forward(123)

# 大一
t.penup()
t.goto(0, -5)
t.left(90)
t.pendown()
t.forward(130)

# 小一
t.penup()
t.goto(20, -65)
t.pendown()
t.forward(90)

# |
t.penup()
t.goto(65, -14)
t.right(90)
t.pendown()
t.forward(120)

# 大一
t.penup()
t.goto(0, -135)
t.left(90)
t.pendown()
t.forward(130)

# 画圆
t.color('red')
t.pensize(3)
t.penup()
t.goto(15, -200)
t.pendown()
t.circle(180)

t.exitonclick()

函数

解释

hideturtle

隐藏画笔

speed

画笔速度,1-10,1最慢,10最快

color

后可传参(2个参数),不传为默认设置,第一个参数为画笔颜色,第二个参数为填充颜色

pensize

画笔粗细,越大越粗

penup

画笔拿起,之后画笔运动时不画下轨迹

pendown

默认是这个状态,画笔落下,之后画笔运动会画出轨迹

forward(num)

画笔运动,num为运动像素数,即长度

right (a)

画笔方向向右旋转a角度,顺时针旋转

left(a)

画笔方向向左旋转a角度,逆时针旋转

goto(x,y)

将画笔移动到坐标轴x,y位置,在pendowm下会画下轨迹

goto(x,y)

将画笔移动到坐标轴x,y位置,在pendowm下会画下轨迹

circle(a)

以当前点为圆心,画一个半径为a的圆

exitonclick

点击关闭,画笔运行完不再自动退出画布

下面是在论坛看到的一个大佬的画樱花树的代码,生成的结果比上面的复杂很多,但在弄懂我上面代码的情况下很容易看懂,作为进阶给大家展示下:

import turtle as T
import random
import time


# 画樱花的躯干(60,t)
def Tree(branch, t):
    time.sleep(0.0005)
    if branch > 3:
        if 8 <= branch <= 12:
            if random.randint(0, 2) == 0:
                t.color('snow')  # 白
            else:
                t.color('lightcoral')  # 淡珊瑚色
            t.pensize(branch / 3)
        elif branch < 8:
            if random.randint(0, 1) == 0:
                t.color('snow')
            else:
                t.color('lightcoral')  # 淡珊瑚色
            t.pensize(branch / 2)
        else:
            t.color('sienna')  # 赭(zhě)色
            t.pensize(branch / 10)  # 6
        t.forward(branch)
        a = 1.5 * random.random()
        t.right(20 * a)
        b = 1.5 * random.random()
        Tree(branch - 10 * b, t)
        t.left(40 * a)
        Tree(branch - 10 * b, t)
        t.right(20 * a)
        t.up()
        t.backward(branch)
        t.down()


# 掉落的花瓣
def Petal(m, t):
    for i in range(m):
        a = 200 - 400 * random.random()
        b = 10 - 20 * random.random()
        t.up()
        t.forward(b)
        t.left(90)
        t.forward(a)
        t.down()
        t.color('lightcoral')  # 淡珊瑚色
        t.circle(1)
        t.up()
        t.backward(a)
        t.right(90)
        t.backward(b)


# 绘图区域
t = T.Turtle()
# 画布大小
w = T.Screen()
t.hideturtle()  # 隐藏画笔
t.getscreen().tracer(5, 0)
w.screensize(bg='wheat')  # wheat小麦
t.left(90)
t.up()
t.backward(150)
t.down()
t.color('sienna')

# 画樱花的躯干
Tree(60, t)
# 掉落的花瓣
Petal(200, t)
w.exitonclick()

这个代码除了用到我上面介绍的几个函数,还用到了screenbgcolor,分别是设置画布和背景色,backward就是反向的forward

到此这篇关于python利用Turtle库画画写名字 的文章就介绍到这了,更多相关pythonTurtle画画写名字 内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • numpy使用fromstring创建矩阵的实例

    numpy使用fromstring创建矩阵的实例

    今天小编就为大家分享一篇numpy使用fromstring创建矩阵的实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-06-06
  • python正则表达式中匹配次数与贪心问题详解(+ ?*)

    python正则表达式中匹配次数与贪心问题详解(+ ?*)

    正则表达式是一个特殊的字符序列,它能帮助你方便的检查一个字符串是否与某种模式匹配,下面这篇文章主要给大家介绍了关于python正则表达式中匹配次数与贪心问题(+ ?*)的相关资料,需要的朋友可以参考下
    2022-10-10
  • Python正则表达式re.findall()几种方法示例

    Python正则表达式re.findall()几种方法示例

    这篇文章主要介绍了Python正则表达式re.findall()几种方法示例,文中介绍了如何使用正则表达式在字符串中查找匹配的字符,并将它们返回为一个列表,示例展示了如何匹配数字并处理没有匹配到的情况,需要的朋友可以参考下
    2024-12-12
  • 浅谈keras 的抽象后端(from keras import backend as K)

    浅谈keras 的抽象后端(from keras import backend as K)

    这篇文章主要介绍了浅谈keras 的抽象后端(from keras import backend as K),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-06-06
  • python加密打包程序详解

    python加密打包程序详解

    这篇文章主要介绍了python加密打包程序,还给大家介绍了Python实现文件简单加解密的方法,本文通过示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2023-04-04
  • 利用Python来实现阿姆斯特朗数的检查实例

    利用Python来实现阿姆斯特朗数的检查实例

    这篇文章主要给大家介绍了关于利用Python来实现阿姆斯特朗数的检查的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-03-03
  • pycharm安装opencv-python报错的解决

    pycharm安装opencv-python报错的解决

    本文主要介绍了pycharm安装opencv-python报错的解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-07-07
  • Python logging日志模块的概念与实践讲解

    Python logging日志模块的概念与实践讲解

    本文通过具体的代码示例为大家解释了如何高效地使用logging模块进行日志记录,以及如何避免常见的陷阱,希望可以帮助大家更好地掌握这个强大的工具
    2023-07-07
  • Pygame Rect区域位置的使用(图文)

    Pygame Rect区域位置的使用(图文)

    在 Pygame 中我们使用 Rect() 方法来创建一个指定位置,大小的矩形区域。本文主要就来介绍一下如何使用,具有一定的参考价值,感兴趣的可以了解一下
    2021-11-11
  • 如何在Python中妥善使用进度条详解

    如何在Python中妥善使用进度条详解

    python的进度条有很多第三方库,有些做的比较炫酷,下面这篇文章主要给大家介绍了关于如何在Python中妥善使用进度条的相关资料,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-04-04

最新评论