Python的turtle库(教师节祝福,用turtle画一只熊猫和一个太阳)

2023-11-11

目录

一、基本功能

1. turtle库的官方文档

2. 开始绘制

3. 绘制结果

4. 常用的turtle库的方法


一、基本功能

1. turtle库的官方文档

官方文档

2. 开始绘制

import turtle as t
import math as m
import random as r

t.bgpic(r'D:/桌面/1-210102132145.gif')

def drawX(a, i):
    angle = m.radians(i)
    return a * m.cos(angle)


def drawY(b, i):
    angle = m.radians(i)
    return b * m.sin(angle)


# 设置背景颜色,窗口位置以及大小
# t.bgcolor("#d3dae8")
# t.setup(width=900, height=600, startx=0, starty=0)
t.title("老师,祝您节日快乐!")

t.setup(width=1450, height=1450, startx=0, starty=0)
t.speed(0)
t.rt(-120)
t.up()
t.pensize(6)
t.goto(180, 150)
t.bgcolor('white')
t.down()
t.color('black')
t.circle(190, 100)
t.fd(20)
for i in range(260):
    t.fd(1)
    t.lt(0.5)
for i in range(8):
    t.fd(19)
    t.lt(1)
for i in range(260):
    t.fd(1)
    t.lt(0.5)
t.up()
t.goto(-70, -16)
t.setheading(245)
t.down()
for i in range(35):
    t.fd(1.5)
    t.lt(0.5)
for i in range(5):
    t.fd(1.5)
    t.lt(0.0125)
for i in range(9):
    t.fd(0.75)
    t.lt(1.5)
for i in range(22):
    t.fd(1)
    t.lt(0.3)
for i in range(20):
    t.fd(1)
    t.lt(3)
for i in range(180):
    t.fd(1)
    t.lt(0.20)
for i in range(20):
    t.fd(1)
    t.lt(3)
for i in range(22):
    t.fd(1)
    t.lt(0.3)
for i in range(9):
    t.fd(0.75)
    t.lt(1.5)
for i in range(5):
    t.fd(1.5)
    t.lt(0.0125)
for i in range(25):
    t.fd(1.5)
    t.lt(0.5)
t.up()
t.goto(-65, -119)
t.down()
t.begin_fill()
t.color('black')
t.setheading(280)
t.circle(30, 135)
t.end_fill()
t.up()
t.goto(50, -129)
t.down()
t.begin_fill()
t.color('black')
t.setheading(305)
t.circle(30, 135)
t.end_fill()
t.up()
t.goto(200, 118)
t.down()
t.begin_fill()
t.color('black')
t.setheading(20)
t.circle(50, 210)
t.end_fill()
t.up()
t.goto(-70, 227)
t.down()
t.begin_fill()
t.color('black')
t.setheading(103)
t.circle(50, 230)
t.end_fill()
t.up()
t.goto(117, -40)
t.setheading(25)
t.down()
t.begin_fill()
t.color('black')
for i in range(70):
    t.fd(1)
    t.lt(-0.5)
for i in range(160):
    t.fd(0.25)
    t.lt(-0.9)
for i in range(70):
    t.fd(1)
    t.lt(-0.65)
t.end_fill()
t.up()
t.goto(-75, -25)
t.setheading(155)
t.down()
t.begin_fill()
t.color('black')
for i in range(70):
    t.fd(1)
    t.lt(0.5)
for i in range(160):
    t.fd(0.25)
    t.lt(0.85)
for i in range(70):
    t.fd(1)
    t.lt(0.65)
t.end_fill()
t.up()
t.goto(-45, 80)
t.begin_fill()
t.color('black')
t.down()
t.circle(25.25)
t.end_fill()
t.up()
t.goto(-50.5, 74.5)
t.begin_fill()
t.color('black')
t.down()
t.circle(26.25)
t.end_fill()
t.up()
t.goto(-43, 100)
t.begin_fill()
t.color('white')
t.down()
t.circle(5.5)
t.end_fill()
t.up()
t.goto(100, 67)
t.begin_fill()
t.color('black')
t.down()
t.circle(25.25)
t.end_fill()
t.up()
t.goto(105.5, 63.5)
t.begin_fill()
t.color('black')
t.down()
t.circle(25.25)
t.end_fill()
t.up()
t.goto(96, 92)
t.begin_fill()
t.color('white')
t.down()
t.circle(5.5)
t.end_fill()
t.up()
t.goto(105, 40)
t.begin_fill()
t.color('tomato')
a = 0.45
t.down()
t.setheading(270)
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a+0.045
        t.lt(3)
        t.fd(a)
    else:
        a = a-0.045
        t.lt(3)
        t.fd(a)
t.end_fill()
t.up()
t.goto(-60, 50)
t.begin_fill()
t.color('tomato')
a = 0.4
t.down()
t.setheading(90)
for i in range(120):
    if 0 <= i < 30 or 60 <= i < 90:
        a = a+0.04
        t.lt(3)
        t.fd(a)
    else:
        a = a-0.04
        t.lt(3)
        t.fd(a)
t.end_fill()
t.up()
t.goto(20, 75)
t.begin_fill()
t.color('black')
t.setheading(125)
t.down()
for i in range(25):
    t.fd(0.75)
    t.lt(-1)
for i in range(20):
    t.fd(0.25)
    t.lt(-4.5)
for i in range(30):
    t.fd(0.75)
    t.lt(-1)
for i in range(20):
    t.fd(0.25)
    t.lt(-4.5)
for i in range(25):
    t.fd(0.75)
    t.lt(-1)
for i in range(20):
    t.fd(0.25)
    t.lt(-4.5)
t.end_fill()
t.up()
t.setheading(260)
t.goto(23, 75)
t.down()
for i in range(45):
    t.fd(1)
    t.lt(3)
t.up()
t.setheading(260)
t.goto(23, 75)
t.down()
for i in range(45):
    t.fd(1)
    t.lt(-3)
t.color('red')
x = -100
t.up()

t.color("red", "yellow")
t.goto(-400, 200)
t.down()
t.begin_fill()
for _ in range(50):
    t.pensize(1)
    t.forward(200)

    t.left(170)
t.end_fill()


# ##随机
color = ["#e28cb9", "#805a8c", "#eaa989", "#6e90b7", "#b8b68f", "#e174b5", "#cf737c", "#7c8782"]
for i in range(80):
    t.pu()
    x = r.randint(-420, 420)
    y = r.randint(-25, 30)
    t.goto(x, y)
    t.pd()
    t.dot(r.randint(2, 5), color[r.randint(0, 7)])
for i in range(40):
    t.pu()
    x = r.randint(-190, 190)
    y = r.randint(-35, 10)
    t.goto(x, y)
    t.pd()
    t.dot(r.randint(2, 5), color[r.randint(0, 7)])

for i in range(40):
    t.pu()
    x = r.randint(-480, 480)
    y = r.randint(60, 90)
    t.goto(x, y)
    t.pd()
    t.dot(r.randint(2, 5), color[r.randint(0, 7)])
for i in range(30):
    t.pu()
    x = r.randint(-450, 450)
    y = r.randint(45, 70)
    t.goto(x, y)
    t.pd()
    t.dot(r.randint(2, 5), color[r.randint(0, 7)])
for i in range(50):
    t.pu()
    x = r.randint(-500, 500)
    y = r.randint(120, 300)
    t.goto(x, y)
    t.pd()
    t.dot(r.randint(3, 5), color[r.randint(0, 7)])
t.seth(90)
t.pu()
t.goto(0, 0)
t.fd(300)
t.left(90)
t.fd(170)
t.pd()
t.write("Happy Teachers' Day", font=("Comic Sans MS", 50))


t.color('purple')
t.penup()
t.goto(-400, -200)
t.pendown()
t.write('致:敬爱的老师们  ', font=('楷体', 32, 'bold'))
t.color('red')
t.penup()
t.goto(-300, -280)
t.pendown()
t.write('祝 您 节 日 快 乐!桃 李 满 天 下!', font=('楷体', 30, 'bold'))
t.color('purple')
t.done()

3. 绘制结果

4. 常用的turtle库的方法

import turtle

#导入turtle功能模块 # 前进 后退 转向 forward backward left right


turtle.bgcolor("black")

#设置画面背景色


turtle.setup(width=200,height=200,startx=0,starty=0)

#设置窗口大小和在屏幕上的坐标


turtle.bgpic("1.gif")

#设置背景图片,只支持gif格式


turtle.onscreenclick(x,y)

#用户点击屏幕时获得笔的坐标,制作app时响应用户的点击操作32


turtle.bye()

#退出turtle,无任何提示信息


turtle.exitonclick()

#点击后退出turtle


turtle.done()

#关闭turtle,一般在使用完turtle后添加,否则会无响应


turtle.Pen()

#启用画笔


turtle.Pen().color("#cc4455")

#画笔颜色设置,颜色可以使用英文单词或常见的#开头十六进制数表示


turtle.Pen().forward(2)

#画笔前进长度,以像素为单位


turtle.Pen().backward(2)

#画笔后退长度


turtle.Pen().home()

#画笔的初始位置


turtle.Pen().left(90)

#画笔向左转


turtle.Pen().right(90)

#画笔向右转


turtle.Pen().width(3)

#设置画笔宽度,以像素为单位


t=turtle.Pen()

#让t代表turtle.Pen(),上面的内容可以简化

#例如turtle.Pen.color("#cc4455")简化为t.color("#cc4455")

#后面内容都用t表示


t.penup()

#抬起笔,停止写


t.pendown()

#放下笔,开始写


t.write("balabala",font=("Arial",23,"bold"))

#写指定内容”balabala“,并设置字体、字号、加粗等


t.circle(4)

#以参数为半径画圆


t.dot(4)

#以参数为直径画点


t.position()

#笔的坐标(x,y)


t.heading()

#笔的朝向


t.setx(position[0])

#设置笔的x坐标为position记录的x坐标,position由position=t.position()获得


t.sety(position[1])

#设置笔的y坐标为position记录的y坐标


t.setheading(30)

#设置笔的朝向,画笔默认朝向为正右方


t.setpos(x,y)

#设置笔的坐标


t.fillcolor("#33de55")

t.begin_fill()

t.circle(5)

t.end_fill()

#设置填充颜色,开始填充,画圆填充,填充结束


t.goto(x,y)

#笔移动到坐标(x,y)


t.speed(0)

#笔的移动速度参数范围0.5——10,范围之外为0,最快,不设置速度为最慢


t.hideturtle()

#隐藏画笔


t.showturtle()

#显示画笔


t.clear()

#删除画的内容,不修改画笔参数

t.reset()

#删除画的内容,还原画笔参数为初始值
 

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python的turtle库(教师节祝福,用turtle画一只熊猫和一个太阳) 的相关文章

  • 如何将base64字符串直接解码为二进制音频格式

    音频文件通过 API 发送给我们 该文件是 Base64 编码的 PCM 格式 我需要将其转换为 PCM 然后再转换为 WAV 进行处理 我能够使用以下代码解码 gt 保存到 pcm gt 从 pcm 读取 gt 保存为 wav decod
  • Python从int到string的快速转换

    我正在用 python 求解大量阶乘 并发现当我完成计算阶乘时 需要相同的时间才能转换为字符串以保存到文件中 我试图找到一种将 int 转换为字符串的快速方法 我将举一个计算和 int 转换时间的例子 我正在使用通用的 a str a 但感
  • Jupyter Notebooks 不显示进度条

    我正在尝试在 Jupyter 笔记本中显示进度条 这是一台新电脑 我通常做的事情似乎不起作用 from tqdm import tqdm notebook example iter 1 2 3 4 5 for rec in tqdm not
  • 将 numpy 数组写入文本文件的速度

    我需要将一个非常 高 的两列数组写入文本文件 而且速度非常慢 我发现如果我将数组改造成更宽的数组 写入速度会快得多 例如 import time import numpy as np dataMat1 np random rand 1000
  • Tweepy StreamListener 到 CSV

    我是 python 新手 我正在尝试开发一个应用程序 使用 Tweepy 和 Streaming API 从 Twitter 检索数据并将数据转换为 CSV 文件 问题是此代码不会创建输出 CSV 文件 也许是因为我应该将代码设置为在实现例
  • 如何在 PyCharm 4.5.2 中使用 PyPy 作为标准/默认解释器?

    如何在 PyCharm 4 5 2 中使用 PyPy 作为标准 默认解释器 一切都在 Ubunutu 14 10 下运行 并且 pypy 已经安装 您可以在项目的设置下进行配置 这个官方文档直接涵盖了 https www jetbrains
  • 了解 Python 中的酸洗

    我最近接到一项作业 需要以腌制形式放置一本字典 其中每个键引用一个列表 唯一的问题是我不知道腌制形式是什么 谁能给我指出一些好的资源的正确方向来帮助我学习这个概念 pickle 模块实现了一个基本但强大的算法 用于序列化和反序列化 Pyth
  • 在 macOS 中通过 Python 访问进程的压缩 RAM(顶部的 CMPRS)的方法?

    我试图弄清楚如何从 Python 访问任何给定进程占用的实际 RAM 量 我发现 psutil Process PID memory info rss 工作得很好 直到操作系统决定开始压缩某些进程的 RAM 然后 所有的 memory in
  • numpy 使用 datetime64 进行数字化

    我似乎无法让 numpy digitize 与 datetime64 一起使用 date bins np array np datetime64 datetime datetime 2014 n 1 s for n in range 1 1
  • 可以用 Django 制作移动应用程序吗?

    我想知道我是否可以在我的网站上使用 Django 代码 并以某种方式在移动应用程序 Flutter 等框架中使用它 那么是否可以使用我现在拥有的 Django 后端并在移动应用程序中使用它 所以就像models views etc 是的 有
  • Python Fabric - 未找到主机。请指定用于连接的(单个)主机字符串:

    如何获取 找不到主机 请指定用于连接的 单个 主机字符串 面料如何解决 def bootstrap host ec2 54 xxx xxx xxx compute 1 amazonaws com env hosts host env use
  • Apache Spark 中的高效字符串匹配

    我使用 OCR 工具从屏幕截图中提取文本 每个大约 1 5 句话 然而 当手动验证提取的文本时 我注意到时不时会出现一些错误 鉴于文本 你好 我真的很喜欢 Spark 我注意到 1 像 I 和 l 这样的字母被 替换 2 表情符号未被正确提
  • PySide6.1 与 matplotlib 3.4 不兼容

    当我只安装PySide6时 GUI程序运行良好 但是一旦我安装了matplotlib及其依赖包 包括pyqt5 则GUI程序将无法运行并输出以下错误消息 This application failed to start because no
  • 为什么我无法在 Mac OS X Terminal.app 上的 Python 解释器中显示 unicode 字符?

    如果我尝试粘贴 unicode 字符 例如中间的点 在我的 python 解释器中它什么也不做 我在 Mac OS X 上使用 Terminal app 当我只是在 bash 中时 我没有遇到任何问题 但在解释器中 python Pytho
  • `list()` 被认为是一个函数吗?

    list显然是内置类型 https docs python org 3 library stdtypes html list在Python中 我看到底下有一条评论this https stackoverflow com a 53645813
  • Python多处理错误“ForkAwareLocal”对象没有属性“连接”

    下面是我的代码 我面临着多处理问题 我看到这个问题之前已经被问过 我已经尝试过这些解决方案 但它似乎不起作用 有人可以帮我吗 from multiprocessing import Pool Manager Class X def init
  • 使用 numpy 在 python 中执行最大方差旋转

    我正在研究矩阵的主成分分析 我已经找到了如下所示的组件矩阵 A np array 0 73465832 0 24819766 0 32045055 0 3728976 0 58628043 0 63433607 0 72617152 0 5
  • 将文本注释到轴并对齐为圆

    我正在尝试在轴上绘制文本并将该文本与圆对齐 更准确地说 有一些具有不同坐标 x y 的点位于该圆内 并使用以下命令创建 ax scatter x y s 100 我想用圆圈连接并标记每个点 Cnameb 文本的坐标由 xp yp 定义 因此
  • Python 通过从现有 csv 文件中过滤选定的行来写入新的 csv 文件

    只是一个问题 我试图将 csv 文件中的选定行写入新的 csv 文件 但出现错误 我试图读取的 test csv 文件是这样的 两列 2013 9 1 2013 10 2 2013 11 3 2013 12 4 2014 1 5 2014
  • Python:高精度time.sleep

    你能告诉我如何在 Win32 和 Linux 上的 Python 2 6 中获得高精度睡眠函数吗 您可以在中使用浮点数sleep http docs python org library time html time sleep 该参数可以

随机推荐

  • 24.绳子切割

    目录 题目 Description Input Output 思路 注意事项 C 完整代码 题目 Description 有N条绳子 它们的长度分别为Li Li都是正整数 如果从它们中切割出K条长度相同的绳子 绳子的长度为整数 这K条绳子每
  • Windows7不再卡五叶草,更新了bootx64.efi和bootmgfw.efi文件,支持安全启动,不用关闭安全启动和打开csm支持.

    如题 微软最近为Windows7的64位系统更新了bootx64 efi和bootmgfw efi文件 然后Windows7的64位系统就支持了更新的平台 而且支持安全启动 不用关闭安全启动和打开csm支持 已在Intel10代和12代平台
  • Gitlab----设置页面语言为简体中文

    原文链接 1 简介 gitlab为每个用户提供了个性化设置 即用户登录之后设置页面的语言之后 并不影响其他人的页面的语言 如此就解决了有的人喜欢看中文界面 有的人喜欢看英文界面 当然如果会其他国语言也可以同样设置自己喜欢的语言 2 用户登录
  • Unity动画控制

    1 Trigger控制动画状态重复播放
  • 判断一个对象是否存在某个属性

    一 OBJ hasOwnProperty 属性 返回一个布尔值 只判断该对象自身的属性 不会去查找原型链上的属性 二 OBJ 或者 OBJ 去访问该属性 如果不存在就会返回undefined 这个方法可以查找原型链上的属性 这里有一个特殊情
  • ssh免密登录,各种权限设置都无效的解决办法!

    如果失败 有可能是以下原因 1 权限问题 这个还得试试 有可能你的权限真的不对 ssh目录 以及 home 当前用户 需要700权限 参考以下操作调整 sudo chmod 700 ssh sudo chmod 700 home 当前用户
  • Python打乱数据集

    在随机划分训练集和测试集时 需要随机划分 使用这种方法 一 打乱索引 import random random seed seed index i for i in range len x train random shuffle inde
  • linux定时删除指定文件shell脚本

    vi delete sh 输入以下内容 bin bash data path home test logs expire time 1 function deletefiles for file in find 1 name Default
  • vscode安装node-snippets

    vscode安装node snippets扩展后没有代码提示问题 安装好扩展后 输入node后仍没有代码提示 需要观察自己的代码所在文件路径是否全是英文路径 然后大多都以了 如果还有不行 就尝试在设置里面输入prevent 取消下面的选中
  • windows下如何安装高版本的jaxlib

    https zhuanlan zhihu com p 498404068
  • Vue2手捏Vuex插件

    一 展示数据 state 1 plugins Vuex js let Vue class Store constructor options 1 保存数据 通过 vue 中的 data 是响应式 this vm new Vue data s
  • C语言百日刷题第九天

    前言 今天是刷题第9天 放弃不难 但坚持一定很酷 快来跟我一起刷题吧 加油 一起努力进步 C语言百日刷题第九天 前言 76 计算偶数的所有质因子 77 提取不重复的整数 78 二进制中1的个数 79 猴子分桃 80 百钱买百鸡 76 计算偶
  • Typora-Markdown 文本编辑器

    图片 md test png img src md test png height 300 时序图 实线 gt gt gt 虚线 gt gt gt 背景 rect rgb 244 244 255 end 列子 mermaid sequenc
  • SSM商城项目实战:客户管理

    SSM商城项目实战 客户管理 1 项目背景和需求分析 在一个电商平台中 客户管理是非常重要的一环 通过对客户信息的管理 可以更好地了解客户需求 提供个性化的服务 增强客户满意度 本项目旨在实现一个简单的客户管理功能 包括客户信息的添加 修改
  • react组件权限控制+路由权限+路由懒加载

    组件控制 permission js import React useEffect useState useContext from react const PermissionContext React createContext per
  • [~/vulhub]/log4j/CVE-2021-44228-20221225

    vulhub log4j CVE 2021 44228 kwkl kwkl vulhub cd log4j CVE 2021 44228 kwkl kwkl vulhub log4j CVE 2021 44228
  • flutter 对象模型的理解

    如果要传值 传一个int值时就很简单了 类型就是int 如果我们要传好多个值呢 里面有int 也有String 也会有列表 对象 当然我们也可以一个个传 问题是这样子很麻烦 我们可以将这些不同的类型数据堆到一个模型里面 然后传这个模型 也就
  • 为了搞清楚CDN的原理,我头都秃了...

    点击上方 前端Q 关注公众号 回复加群 加入前端Q技术交流群 作者 winty的帆宝宝 原文地址 https juejin cn post 6944420222757503006 今天下班前忽然发现维护的项目网站打不开了 打开控制台一看 原
  • C++--运算符

    运算符是一种告诉编译器执行特定的数学或逻辑操作的符号 C 内置了丰富的运算符 并提供了以下类型的运算符 算术运算符 关系运算符 逻辑运算符 位运算符 赋值运算符 杂项运算符 本章将逐一介绍算术运算符 关系运算符 逻辑运算符 位运算符 赋值运
  • Python的turtle库(教师节祝福,用turtle画一只熊猫和一个太阳)

    目录 一 基本功能 1 turtle库的官方文档 2 开始绘制 3 绘制结果 4 常用的turtle库的方法 一 基本功能 1 turtle库的官方文档 官方文档 2 开始绘制 import turtle as t import math