当前位置: 首页 > article >正文

Python源码分享10:使用海龟画图turtle画哆啦A梦

turtle模块是一个Python的标准库之一,它提供了一个基于Turtle graphics的绘图库。Turtle graphics是一种流行的绘图方式,它通过控制一个小海龟在屏幕上移动来绘制图形。

turtle模块可以让您轻松地创建和控制海龟图形,从而帮助您学习Python编程和图形编程的基本概念。您可以使用turtle模块绘制各种形状、线条和图案,还可以通过添加颜色和其他效果来增强绘图的视觉效果。

turtle模块还提供了一些简单的函数和命令,例如前进、后退、转向、设置画笔颜色和粗细等等。这些函数和命令使得您可以轻松地控制海龟的移动和绘图行为。此外,turtle模块还提供了一些高级功能,例如创建自己的绘图函数、保存和加载绘图文件等等。

总之,turtle模块是一个非常适合初学者使用的Python库,它可以帮助您学习Python编程和图形编程的基本概念,并为您提供了一个轻松愉快的绘图环境。

import turtle as t

def flyTo(x, y):
    t.penup()
    t.goto(x, y)
    t.pendown()
def drawEye():
    t.tracer(False)
    a = 2.5
    for i in range(120):
        if 0 <= i < 30 or 60 <= i < 90:
            a -= 0.05
        else:
            a += 0.05
        t.left(3)
        t.fd(a)
    t.tracer(True)
def beard():
    """ 画胡子, 一共六根
    """
    # 左边第一根胡子
    flyTo(-37, 135)
    t.seth(165)
    t.fd(60)
    # 左边第二根胡子
    flyTo(-37, 125)
    t.seth(180)
    t.fd(60)
    # 左边第三根胡子
    flyTo(-37, 115)
    t.seth(193)
    t.fd(60)
    # 右边第一根胡子
    flyTo(37, 135)
    t.seth(15)
    t.fd(60)
    # 右边第二根胡子
    flyTo(37, 125)
    t.seth(0)
    t.fd(60)
    # 右边第三根胡子
    flyTo(37, 115)
    t.seth(-13)
    t.fd(60)
def drawRedScarf():
    """ 画围巾
    """
    t.fillcolor("red")  # 填充颜色
    t.begin_fill()
    t.seth(0)  # 朝向右
    t.fd(200)  # 前进10个单位
    t.circle(-5, 90)
    t.fd(10)
    t.circle(-5, 90)
    t.fd(207)
    t.circle(-5, 90)
    t.fd(10)
    t.circle(-5, 90)
    t.end_fill()
def drawMouse():
    flyTo(5, 148)
    t.seth(270)
    t.fd(100)
    t.seth(0)
    t.circle(120, 50)
    t.seth(230)
    t.circle(-120, 100)
def drawRedNose():
    flyTo(-10, 158)
    t.fillcolor("red")  # 填充颜色
    t.begin_fill()
    t.circle(20)
    t.end_fill()
def drawBlackdrawEye():
    t.seth(0)
    flyTo(-20, 195)
    t.fillcolor("#000000")  # 填充颜色
    t.begin_fill()
    t.circle(13)
    t.end_fill()
    t.pensize(6)
    flyTo(20, 205)
    t.seth(75)
    t.circle(-10, 150)
    t.pensize(3)
    flyTo(-17, 200)
    t.seth(0)
    t.fillcolor("#ffffff")
    t.begin_fill()
    t.circle(5)
    t.end_fill()
    flyTo(0, 0)
def drawFace():
    t.forward(183)  # 前行183个单位
    t.fillcolor("white")  # 填充颜色为白色
    t.begin_fill()  # 开始填充
    t.left(45)  # 左转45度
    t.circle(120, 100)  # 右边那半边脸
    t.seth(90)  # 朝向向上
    drawEye()  # 画右眼睛
    t.seth(180)  # 朝向左
    t.penup()  # 抬笔
    t.fd(60)  # 前行60
    t.pendown()  # 落笔
    t.seth(90)  # 朝向上
    drawEye()  # 画左眼睛
    t.penup()  # 抬笔
    t.seth(180)  # 朝向左
    t.fd(64)  # 前进64
    t.pendown()  # 落笔
    t.seth(215)  # 修改朝向
    t.circle(120, 100)  # 左边那半边脸
    t.end_fill()  #
def drawHead():
    """ 画了一个被切掉下半部分的圆
    """
    t.penup()  # 抬笔
    t.circle(150, 40)  # 画圆, 半径150,圆周角40
    t.pendown()  # 落笔
    t.fillcolor("#00a0de")  # 填充色
    t.begin_fill()  # 开始填充
    t.circle(150, 280)  # 画圆,半径150, 圆周角280
    t.end_fill()
def drawAll():
    drawHead()
    drawRedScarf()
    drawFace()
    drawRedNose()
    drawMouse()
    beard()
    flyTo(0, 0)
    t.seth(0)
    t.penup()
    t.circle(150, 50)
    t.pendown()
    t.seth(30)
    t.fd(40)
    t.seth(70)
    t.circle(-30, 270)
    t.fillcolor("#00a0de")
    t.begin_fill()
    t.seth(230)
    t.fd(80)
    t.seth(90)
    t.circle(1000, 1)
    t.seth(-89)
    t.circle(-1000, 10)
    t.seth(180)
    t.fd(70)
    t.seth(90)
    t.circle(30, 180)
    t.seth(180)
    t.fd(70)
    t.seth(100)
    t.circle(-1000, 9)
    t.seth(-86)
    t.circle(1000, 2)
    t.seth(230)
    t.fd(40)
    t.circle(-30, 230)
    t.seth(45)
    t.fd(81)
    t.seth(0)
    t.fd(203)
    t.circle(5, 90)
    t.fd(10)
    t.circle(5, 90)
    t.fd(7)
    t.seth(40)
    t.circle(150, 10)
    t.seth(30)
    t.fd(40)
    t.end_fill()
    # 左手
    t.seth(70)
    t.fillcolor("#FFFFFF")
    t.begin_fill()
    t.circle(-30)
    t.end_fill()
    # 脚
    flyTo(103.74, -182.59)
    t.seth(0)
    t.fillcolor("#FFFFFF")
    t.begin_fill()
    t.fd(15)
    t.circle(-15, 180)
    t.fd(90)
    t.circle(-15, 180)
    t.fd(10)
    t.end_fill()
    flyTo(-96.26, -182.59)
    t.seth(180)
    t.fillcolor("#FFFFFF")
    t.begin_fill()
    t.fd(15)
    t.circle(15, 180)
    t.fd(90)
    t.circle(15, 180)
    t.fd(10)
    t.end_fill()
    # 右手
    flyTo(-133.97, -91.81)
    t.seth(50)
    t.fillcolor("#FFFFFF")
    t.begin_fill()
    t.circle(30)
    t.end_fill()
    # 口袋
    flyTo(-103.42, 15.09)
    t.seth(0)
    t.fd(38)
    t.seth(230)
    t.begin_fill()
    t.circle(90, 260)
    t.end_fill()
    flyTo(5, -40)
    t.seth(0)
    t.fd(70)
    t.seth(-90)
    t.circle(-70, 180)
    t.seth(0)
    t.fd(70)
    # 铃铛
    flyTo(-103.42, 15.09)
    t.fd(90)
    t.seth(70)
    t.fillcolor("#ffd200")
    t.begin_fill()
    t.circle(-20)
    t.end_fill()
    t.seth(170)
    t.fillcolor("#ffd200")
    t.begin_fill()
    t.circle(-2, 180)
    t.seth(10)
    t.circle(-100, 22)
    t.circle(-2, 180)
    t.seth(180 - 10)
    t.circle(100, 22)
    t.end_fill()
    flyTo(-13.42, 15.09)
    t.seth(250)
    t.circle(20, 110)
    t.seth(90)
    t.fd(15)
    t.dot(10)
    flyTo(0, -150)
    drawBlackdrawEye()
def main():
    t.screensize(800, 6000, "#F0F0F0")
    t.pensize(3)
    t.speed(9)
    drawAll()
if __name__ == "__main__":
    main()
    t.mainloop()

在这里插入图片描述
完毕!!感谢您的收看

----------★★历史博文集合★★----------

我的零基础Python教程,Python入门篇 进阶篇 视频教程 Py安装py项目 Python模块 Python爬虫 Json Xpath 正则表达式 Selenium Etree CssGui程序开发 Tkinter Pyqt5 列表元组字典数据可视化 matplotlib 词云图 Pyecharts 海龟画图 Pandas Bug处理 电脑小知识office自动化办公 编程工具


http://www.kler.cn/news/161611.html

相关文章:

  • 微信小程序 - 文件工具类 fileUtil.js
  • 基于Hadoop技术的计算机专业画像平台的设计与研究
  • 数据清洗、特征工程和数据可视化、数据挖掘与建模的主要内容
  • FFmpeg开发笔记(六)如何访问Github下载FFmpeg源码
  • Django + Matplotlib:实现数据分析显示与下载为PDF或SVG
  • LCM-LoRA:a universal stable-diffusion acceleration module
  • 基于ssm少儿编程管理系统源码和论文
  • 高翔《自动驾驶与机器人中的SLAM技术》第九、十章载入静态地图完成点云匹配重定位
  • 计算机毕业设计 基于大数据的智能家居销量数据分析系统的设计与实现 Java实战项目 附源码+文档+视频讲解
  • 如何进行多ip服务器租用?
  • 若依微服务项目整合rocketMq
  • EV代码签名证书
  • SVM原理理解
  • css弹窗动画效果,示例弹窗从底部弹出
  • flex布局的flex为1到底是什么
  • 阿里云实时数据仓库HologresFlink
  • React富文本编辑器wangEditor
  • 【Ajax】发送get请求获取接口数据
  • 【计算机组成体系结构】SRAM和DRAM
  • Java网络编程,使用UDP实现TCP(一), 基本实现三次握手
  • 排序算法之三:希尔排序
  • java第三十一课
  • Unity——鼠标控制摄像机移动,(距离)缩放,旋转
  • Linux篇之在Centos环境下搭建Nvidia显卡驱动
  • MacOS VSCode 配置远程服务器ssh remote链接,并上传文件文件服务器
  • 力扣150题 |80.删除有序数组中的重复项II
  • Boost:asio多io_service,多线程run
  • Unity中Batching优化的GPU实例化(3)
  • 万户协同办公平台ezoffice wpsservlet接口任意文件上传漏洞
  • uni-app 微信小程序之好看的ui登录页面(四)