python-turtle画图

news2024/9/25 23:21:42
    • 认识Turtle

  • Turtle是一个渲染器

  • 基于底层图形编程结构(API)构建,主要用于场景的构建以及3D物体的绘制(3D游戏、虚拟场景等)

  • Turtle是一个窗体程序

  • Turtle是Python语言中的一个很流行的绘制图像的函数库,想象一个小海龟在一个横轴为x,纵轴为y的坐标系原点(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形

  • 图形用户界面(GUI)是采用图形方式显示的计算机操作用户界面,Turtle就是一个很标准的GUI应用程序

    • 相关函数

    • 画布设置

  • 画布是turtle展开的绘图区域,可以设置他的大小和初始位置,常用画布方法有两个

  • turtle.screensize(800,600,"red"):设置画布大小(宽,高,背景颜色),默认800*600,白色

  • tuetle.setup(500,500,0,0):不仅可以设置宽和高,可以设置程序运行时候的x和y坐标

    • 画笔运动命令

  • turtle.forward(distance):向当前画笔方向移动distance像素长度,默认向右

  • turtle.backward(distance):向当前画笔反方向移动distance像素长度

  • turtle.right(degree):顺时针移动degree°

  • turtle.left(degree):逆时针移动degree°

  • turtle.pendown():移动时候绘制图形,缺省时也为绘制

  • turtle.goto(x,y):将画笔移动到坐标为x,y的位置

  • turtle.penup():提起笔移动,不绘制图形,用于另起一个地方绘制

  • tuetle.circle():画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆

  • setx():将当前的x轴移动到指定的位置

  • sety():将当前的y轴移动到指定的位置

  • turtle.speed():控制画笔绘制的速度(1-10)

  • sentheading(angle):设置当前朝向angle角度

  • home():设置当前画笔位置为原点,朝向东

  • dot():绘制一个指定直径和颜色的圆点

    • 画笔控制命令

  • turtle.pensize():设置线条粗细

  • turtle.fillcolor(colorstring):绘制图形的填充颜色

  • turtle.color(color1,color2):同时设置pencolor=color1,fillcolor=color2,要在画之前,第一个是画笔颜色,第二个是填充颜色

  • turtle.begin_fill():准备开始填充

  • turtle.end_fill():填充完成

  • turtle.filling():返回当前是否在填充状态

  • turtle.hideturtle():隐藏画笔的turtle形状

  • turtle.showturtle():显示画笔的turtle形状

    • 全局控制命令

  • turtle.clear():清空当前turtle窗口,但是turtle的位置和状态不变

  • turtle.reset():清空窗口,重置turtle状态为起始状态

  • turtlr.undo():撤销上一个turtle动作

  • turtle.isvisivle():返回当前turtle是否可见

  • stamp():复制当前图形

  • turtle.write(s [,font=("font-name",font_size,"font_type")]):写文本,s为文本内容,font是字体的参数,分别为字体名称,大小和类型;font为可选项,font参数也是可选项

    • 其他命令

  • turtle.mainloop():启动事件循环 -调用Tkinter的mainloop函数。

  • turtle.done():表示所有工作已经做完了(一般在所有代码之后,放在最后一行)

  • turtle.delay(delay=None):设置或返回以毫秒为单位的绘图延迟。

  • turtle.begin_poly():开始记录多边形的顶点,当前的乌龟位置是多边形的第一个顶点

  • turtle.end_poly():停止记录多边形的顶点。当前的乌龟位置是多边形的最后一个顶点。将与第一个顶点相连

  • turtle.get_poly():返回最后记录的多边形

    • 案例

    • 爱的魔力

代码

import turtle as t
import random
t.speed(0)
for i in range(50):
    t.circle(80)
    t.right(100)
t.done()
    • 奥运五环

代码

import turtle as t
import random
# 圆环
# 奥运五环
t.pensize(9)
# 蓝环
t.color('blue')
t.circle(75)
t.penup()
t.forward(150)
t.pendown()
# 黑环
t.color('black')
t.circle(75)
t.penup()
t.forward(150)
t.pendown()
# 红环
t.color('red')
t.circle(75)
t.penup()
t.goto(220, -100)
t.pendown()
# 黄环
t.color('yellow')
t.circle(75)
t.penup()
t.goto(100, -100)
t.pendown()
# 绿环
t.color('green')
t.circle(75)
# 字体
t.color('black')
t.penup()
t.goto(50, 200)
t.pendown()
t.write('北京 2022', font=('YouYuan', 32))
t.done()
    • 美队盾牌

代码

import turtle as t
import random
#美国盾牌
t.penup()
t.goto(0,-200)
t.pendown()
t.color('red')
t.begin_fill()
t.circle(200)
t.end_fill()

t.penup()
t.goto(0, -150)
t.pendown()
t.color('white')
t.begin_fill()
t.circle(150)
t.end_fill()

t.penup()
t.goto(0, -100)
t.pendown()
t.color('red')
t.begin_fill()
t.circle(100)
t.end_fill()

t.penup()
t.goto(0, -60)
t.pendown()
t.color('blue')
t.begin_fill()
t.circle(60)
t.end_fill()

t.penup()
t.goto(-50, 18)
t.pendown()
t.color('white')
t.begin_fill()
for i in range(5):
    t.forward(105)
    t.right(144)
t.end_fill()
t.done()
    • 彩球飘飘

代码

import turtle as t
import random
# 彩旗飘飘
t.colormode(255)
for i in range(20):
    # 设置RGB值,随机生成
    red = random.randint(0, 255)
    green = random.randint(0, 255)
    blue = random.randint(0, 255)
    # 设置气球随机位置,随机生成x,y坐标
    x = random.randint(-400, 400)
    y = random.randint(-100, 300)
    # 移动到指定的位置
    t.penup()
    t.goto(x, y)
    t.pendown()
    # 设置填充颜色
    t.color(red, green, blue)
    # 填充和画圆
    t.begin_fill()
    t.circle(30)
    t.end_fill()
    # 画线
    t.right(90)
    t.forward(30)
    t.left(90)
t.done()
    • 夜空繁星

代码

import turtle as t
import random

if __name__ == '__main__':
    # 繁星漫天
    # 夜空
    t.speed(0)
    t.screensize(800, 600, 'black')
    t.colormode(255)
    t.pensize(250)
    for i in range(10):
        t.goto(-500, 400 - i * 100)
        t.color(i * 20, i * 20, i * 20)
        t.forward(1000)
    # 星星
    for j in range(25):
        x = random.randint(-400, 400)
        y = random.randint(0, 400)
        size = random.randint(5, 20)
        t.color('yellow')
        t.penup()
        t.goto(x, y)
        t.pendown()
        t.pensize(3)
        t.begin_fill()
        for i in range(4):
            t.forward(size)
            t.left(30)
            t.forward(size)
            t.right(120)
        t.end_fill()
    t.done()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/140210.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

时序数据库 TDengine 携手北京科技大学设计研究院,助力冶金工业智慧化

北京科技大学设计研究院有限公司作为北京科技大学全资产业化技术推广机构,从 2013 年开始在冶金、钢铁行业进行业务系统开发和实施,围绕先进材料、绿色低碳和智能制造不断深耕细作,持续创新。其拥有高效轧制与智能制造国家工程研究中心、国家…

DPDK工作原理和环境搭建

DPDK工作原理DPDK环境搭建编译DPDKDPDK工作原理DPDK实践之处理UDP数据总结DPDK环境搭建 工具准备:VMware、ubuntu16.04。 (1)VMware添加两个网卡。桥接网卡作为 DPDK 运行的网卡,NAT 网卡作为 ssh 连接的网卡。 (2&…

后台交互—springboot+mybatis整合小程序(源码演示)

后台准备pom.xml<?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation"http://maven.apache.org/POM…

【案例实战】SpringBoot整合GRPC微服务远程通信

1.什么是GRPC GRPC是RPC框架中的一种&#xff0c;是一个高性能&#xff0c;开源和通用的RPC框架&#xff0c;基于Protobuf序列化协议开发&#xff0c;且支持众多开发语言。 面向服务端和协议端&#xff0c;基于http/2设计&#xff0c;带来诸如双向流&#xff0c;流控&#xff…

足球视频AI(三)——YOLOV7目标检测自训练模型

一、基础概念 YoloV7提供的yolov7-tiny.onnx 对于图像中包含较大尺寸的足球检测准确率高。 但在实际应用中&#xff0c;足球视频中的足球非常小&#xff0c;默认的模型难于满足实际的足球检测需求。 1.1 识别目标 1&#xff09;固定机位的视频中足球的逐帧识别 1.2 实现思…

邮箱2023系统

邮箱2023系统 前言 VMMail作为一款开源的邮件系统&#xff0c;目前已经发布到了10.0版本。 该版本在 GitHub上是免费的&#xff0c;且代码也是开源的&#xff0c;所以该程序不会对 GitHub上的所有用户造成任何影响。 由于 VMMail开发时采用了开源代码&#xff0c;并在 GitHub上…

区块链之bolt数据库持久化与基本功能完善

文章目录bolt数据库安装使用bolt进行持久化存储bolt持久化的基本步骤创世区块的持久化新增区块的持久化完善区块链基本功能创世区块创建增加区块遍历区块链链接&#xff1a; 区块链项目github地址项目目前进度&#xff1a;bolt数据库安装 bolt数据库介绍&#xff1a; bolt数据…

Vue3过渡动画实现

文章目录P14Vue3过渡&动画实现过渡动画的使用过渡CSS动画效果同时设置过渡和动画mode和appearanimate.cssgsapgsap实现数字变化认识列表的过渡列表过渡的移动动画列表的交错过渡案例P14Vue3过渡&动画实现 过渡动画的使用 <template><button click"isShow…

进入新组织项目经理如何快速提升自己的影响力?

我们在工作中&#xff0c;经常以“对事不对人”来体现他们的专业性&#xff0c;但是这点并不符合人性。更多时候对人不对事&#xff0c;反倒能提高问题的解决能力。项目经理会发现&#xff0c;很多事情的推进&#xff0c;都建立在和对方的信任的基础上&#xff0c;所以先成为对…

使用Qt开发的linux嵌入式设备监控、管理框架,监测嵌入式设备运行状态,执行远程shell,远程升级,与客户端进行文件传输

linux SPY 简介 使用Qt开发的linux嵌入式设备监控、管理框架 [客户端]&#xff1a;aes_tcp_lib 完整代码下载地址&#xff1a;使用Qt开发的linux嵌入式设备监控、管理框架 开发环境 ubuntu 20Qt 5.12Qt Creator 4.13.1 核心功能 监测嵌入式设备运行状态转发客户端消息,…

划重点!企业在采购管理中应避免的10个错误

一家企业的采购能力在很大程度上取决于其采购管理系统的有效性。当系统运行良好时&#xff0c;那么采购就会相当顺利。如果你使用的是一个低效的系统&#xff0c;那就会导致一大堆常见的采购问题。 无论采购错误的根本原因是什么&#xff0c;任其发展&#xff0c;最终会给企业…

【ZooKeeper】第二章 JavaAPI 操作

【ZooKeeper】第二章 JavaAPI 操作 文章目录【ZooKeeper】第二章 JavaAPI 操作一、Curator 简介二、Curator API1.建立连接2.创建节点3.查询节点4.修改节点5.删除节点6.Watch 事件监听三、分布式锁四、案例&#xff1a;12306售票一、Curator 简介 Curator 是 Apache ZooKeeper…

【云原生进阶之容器】第二章Controller Manager原理2.3节--Reflector分析

1 Reflector组件 1.1 背景 Reflector 是保证 Informer 可靠性的核心组件,在丢失事件,收到异常事件,处理事件失败等多种异常情况下需要考虑的细节很多。单独的listwatcher缺少重新连接和重新同步机制,有可能出现数据不一致问题。其对事件响应是同步的,如果执行复杂的操作会…

把财务分析明白的BI软件有哪些?

有财务分析这一个地狱级的在&#xff0c;什么销售、采购、库存都是渣渣。在财务分析中&#xff0c;指标运算组合可以有多样化的改变&#xff0c;资金来来回回能把人绕晕&#xff0c;一个极不起眼的疏忽都可能导致所有工作推到重来的可怕后果。即使是在擅长做大数据智能可视化分…

MySQL基础命令

MySQL基础命令 创建数据库 Show databases;查看 选择数据库 Use test; 在test数据库中创建表 create table t_stu( id int, name varchar(20) ); 查看表信息 desc t_stu&#xff1b; 添加字段 alter table t_stu add age int; 字段age成功添加 修改字段 alter tab…

springBoot使用rabbitmq并保证消息可靠性

一、理论说明 1.1、数据的丢失问题&#xff0c;可能出现在生产者、MQ、消费者中 1、如下图 1.2、生产者弄丢了数据 1、生产者将数据发送到 RabbitMQ 的时候&#xff0c;可能数据就在半路给搞丢了&#xff0c;因为网络问题啥的&#xff0c;都有可能。此时可以选择用RabbitM…

VS2019打包程序变成带运行环境的安装包

背景 给外行客户写程序的时候&#xff0c;为了避免客户麻烦&#xff0c;我们在写完程序之后&#xff0c;需要把运行环境也打包进安装包中&#xff0c;这样客户就可以一键安装使用。给客户减少麻烦的同时&#xff0c;无疑让我们也有了更多的好评。 步骤 1.写好我们要打包的程…

推荐16个前端必备的实用工具与网站

1. GitHub Desktop 对于新手来说&#xff0c;要记住那么多git命令可能有点困难&#xff0c;建议新手用git可视化工具&#xff0c;会方便很多 2. 图片在线压缩 tinypng 是一个完全免费并且高压缩率的在线压缩图片网站&#xff0c;一般能满足日常大部分压缩图片的需求&#x…

Visual Studio 2022最全安装教程(+背景图设置),一步步教会你如何安装并运行

目录visual studio 2022最全安装教程一、官网下载二、安装启动三、项目测试四、背景图设置 一、官网下载1.点击蓝色链接—->Visual Studio官网&#xff0c;进入之后是这个界面&#xff0c;选择社区版Community下载&#xff08;社区版Community是对个人免费的&#xff0c;一共…

磨金石教育科技技能干货分享|顶级黑白照片长啥样?看后令人震撼

黑白摄影往往在于一些老旧照片中见到&#xff0c;平常的摄影作品往往会强调一些色彩。黑白色调不是常用的色调。但在一些艺术摄影或者创意摄影中&#xff0c;黑白摄影依然是摄影师常用的一种风格。黑白色调往往能够给人一种肃穆、压抑的感觉。那么今天我们就通过一些作品&#…