python 之 海龟绘图(turtle)

news2024/9/20 22:42:57

注:从个人博客园移植而来


使用简介

python 2.6引入的一个简单的绘图工具,俗称为海龟绘图。3.x以上使用的话,可通过pip进行安装,命令为:

pip/pip3 install turtle

如果出现如下错误:

img

解决方式:

-- 根据下载地址,下载其安装包:
https://files.pythonhosted.org/packages/ff/f0/21a42e9e424d24bdd0e509d5ed3c7dfb8f47d962d9c044dba903b0b4a26f/turtle-0.0.2.tar.gz

-- 下载到指定目录后,解压安装包,打开setup.py文件,找到第40行:
-- 修改其语法错误:
原:except ValueError, ve:
新:except (ValueError, ve):

-- 然后使用命令:
pip/pip3 install  -e turtle的安装目录

这样的话,就可以正确安装使用了。官网参考:turtle


常用方法

关于箭头的说法有的人会说海龟,有的人也会认为是箭头,注意下

方法说明
turtle.screensize(canvwidth=None,canvheight= None,bg= None)设置画布大小,宽高背景颜色,其中宽高为像素,比如:turtle.screensize(400,300,‘blue’)
turtle.setup(width=None,height=None,startx=None,starty=None)设置画布大小width, height 为整数时,表示像素;若为浮点数时,表示栈屏幕的比例,默认情况下width为0.5,height为0.75startx,starty 表示左上角顶点的位置,以像素为单位,默认窗口居中若starx为正,表示从左侧开始计算,若为负,则从右侧边缘开始计算若starty为正,表示从顶部计算,若为负,表示从下边缘计算,比如:turtle.setup(width=0.5, height=0.75, startx=0, starty=0)
turtle.showturtle()设置箭头可见,别名: st, 即turtle.st()
turtle.hideturtle()设置箭头不可见,别名: ht
turtle.isvisible()获取箭头是否可见,若可见为True,否则为False
turtle.setheading(to_angle=None)设置箭头朝向,别名: seth,比如:turtle.seth(90)
turtle.setx(x=None)设置箭头的x坐标
turtle.sety(y=None)设置箭头的y坐标
turtle.goto(x=None, y=None)设置画笔移动到指定位置,别名:setpos | setposition | goto
turtle.home()设置画笔的位置为原点,即为turtle.goto(0,0) turtle.setheading(0)
turtle.pensize(width=None)设置画笔宽度;别名: width
turtle.pencolor(‘blue’)设置画笔的颜色,可使用字符串如"blue"或者RGB值比如(255,2,55)
turtle.penup()画笔移动时,不绘制;别名: pu | up
turtle.pendown()画笔移动时,绘制;别名: pd | down
turtle.isdown()画笔是否在绘制,若pendown则True,若penup则False
turtle.speed(s=0)画笔的绘制速度,取值范围[0,10],其取值范围阶段为:(1,3,6,10,0)分别对应(最慢,慢,正常,快,超快)
turtle.forward(distance=None)向当前画笔方向移动distance像素长度,别名:fd
turtle.backward(distance=None)向当前画笔反方向移动distance像素长度,别名:back | bk
turtle.right(angle)顺时针旋转角度,别名:rt
turtle.left(angle)逆时针旋转角度,别名:lt
turtle.fillcolor(‘red’)设置图形填充颜色,可使用字符串如"blue"或者RGB值比如(255,2,55)
turtle.begin_fill()设置图形开始填充
turtle.end_fill()设置图形填充完成
turtle.circle(radius, extent=None, steps=None)绘制圆.参数依次为半径,角度,绘制的步数若半径为正,则圆心在画笔的左边,若为负则在画笔的右边;后两个参数可省略,默认为360度,步数为1
turtle.write(txt, move=True, align=‘left’, font=(‘Arial’,30,‘normal’))编写文本,txt为字符串文本,move为True或者False,align为left,center或者right, font为文本属性
turtle.color(color1, color2)设置画笔的颜色和填充颜色
turtle.dot(size=None,color)绘制指定颜色的大小的原点,要求size >= 1
turtle.stamp()复制当前图形
turtle.clear()清空窗口,但turle的位置和状态不会改变
turtle.reset()清空窗口,重置turtle的状态
turtle.undo()撤销turtle上一个动作
turtle.done( )绘图完成,该接口不会使得绘图完成后关闭,放置在程序的最后一行
turtle.mainloop()启动事件循环
turtle.delay(delay=None)设置已毫秒为单位的绘图延迟
turtle.begin_poly()开始记录多边形的顶点。当前的箭头位置是多边形的第一个顶点
turtle.end_poly()停止记录多边形的顶点,此处顶点位置将与第一个顶点相连
turtle.get_poly()获取最后记录的多边形

绘制正方形示例相关:

#!/usr/bin/python
# coding:utf-8

import time
import turtle 

colors = ['red', 'yellow', 'purple', 'blue']

turtle.speed(10)
turtle.pensize(2)
turtle.bgcolor('black')
for index in range(0, 400):
    turtle.forward(2 * index)
    turtle.pencolor(colors[index % 4])
    turtle.left(90)             # 角度可进行修改,查看效果

turtle.done()

效果如下:
请添加图片描述

更多的示例参考了一些网友的代码,整理到了GitHub中,仅供学习参考使用。GitHub

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

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

相关文章

UOS桌面操作系统搭建open vxn服务

UOS系统搭建openVPN一、环境说明二、服务端配置1、软件安装2、创建目录用来存放生成证书中要用到的各种文件3、准备证书生成相关文件4 、准备生成证书用的CSR相关配置5、生成CA证书6、生成服务端证书7、使用CA给服务端证书签名8、生成DH证书9、生成ta密钥10、生成客户端证书&am…

07 二叉树

开始系统学习算法啦!为后面力扣和 蓝桥杯的刷题做准备!这个专栏将记录自己学习算法是的笔记,包括 概念, 算法运行过程,以及 代码实现,希望能给大家带来帮助,感兴趣的小伙伴欢迎评论区留言或者私…

CHAPTER 1 Web Server - apache(httpd)

Web Server - apache1.1 概念介绍1.1.1 什么是Web Service?1.1.2 什么是Web Server?1.1.3 常见的Web服务程序有哪些?1.2 httpd1.2.1 httpd和apache的区别关系1.2.2 httpd版本介绍1.2.3 httpd安装1. yum 安装2. 编译安装1.3 通过systemctl管理httpd1.3.1 配置文件原因1.3.2 为…

析构函数、拷贝构造

1、析构函数析构函数的定义方式函数名和类名相同,在类名前加~,没有返回值类型,没有函数形参(不能重载)当对象生命周期结束的时候,系统会自动调用析构函数先调用析构函数,再释放对象的空间析构函…

C#中多态、抽象类、虚方法

多态、重装、重写 •多态:同一操作作用于不同的对象,可以有不同的解释,产生不同的执行结果,这就是多态性。抽象类、虚函数、接口三种方法实现的可以是多态性。•重载(overload):对象中同名函数&…

【Galois工具开发之路】给你的JVM安装一个插件~

什么是DCEVM Dcevm(DynamicCode Evolution Virtual Machine)是Java Hostspot的一个扩展插件,属于开源性工具,非JDK官方提供,它允许你在运行环境下修改加载的类文件。当前虚拟机只允许修改方法体(Method&am…

【Python学习笔记】43.Python3 JSON 数据解析及日期和时间

前言 本章介绍python的JSON及日期和时间。 Python3 JSON 数据解析 JSON (JavaScript Object Notation) 是一种轻量级的数据交换格式。 Python3 中可以使用 json 模块来对 JSON 数据进行编解码,它包含了两个函数: json.dumps(): 对数据进行编码。json…

苏宁基于 AI 和图技术的智能监控体系的建设

汤泳,苏宁科技集团智能监控与运维产研中心总监,中国商业联合会智库顾问,致力于海量数据分析、基于深度学习的时间序列分析与预测、自然语言处理和图神经网络的研究。在应用实践中,通过基于 AI 的方式不断完善智能监控体系的建设&a…

C# 业务单据号生成器(定义编号规则、自动获取编号)

系列文章 C#底层库–数据库访问帮助类(MySQL版) 本文链接:https://blog.csdn.net/youcheng_ge/article/details/126886379 C#底层库–JSON帮助类_详细(序列化、反序列化、list、datatable) 本文链接:htt…

用友Java架构师面试

自我介绍。项目中的一些优化。Q:kafka消息的时序性怎么保证?A1: 核心意思就是要实现局部有序,需要有序的消息应设置相同的key,这样通过哈希取模后会分到同一个partition。又因为一个partition只能被一个consumer组中的…

智慧校园信息化管理平台技术方案

1.2总体架构设计 智慧校园平台是以学校现有网络为基础,以服务于全校师生的教学、科研、生活为目的,建立在学校数据中心平台之上,涵盖了学校的学校管理、学生管理、教学管理、班级管理、家校共育、教务管理等全方位的管理信息平台与信息服务平…

阿里P8经验分享 —— 送给想要学习自动化测试的同学6条建议

基于我的经验,送给想要学习自动化测试的同学6条建议 第一条建议:先学习编程语言,然后再接触自动化工具。 语言选择上Java或者Python都是可以的,可以先从Python入手,之后再开始Java。在学习语言的过程中,一…

playwright python环境运行报错 ImportError: DLL load failed

网上建议网上好多文章介绍playwright的环境搭建,用以下两条语句即可完成pip install playwrightplaywright install安装完毕后,尝试执行一段经典的python demofrom playwright.sync_api import sync_playwright with sync_playwright() as p: browser p…

seo优化案例截图

点击进入》》三支一扶课程聚合页面 百度统计数据 流量稳步增长, 2022年9月比2021年9月 同期增长 约30%。

SpringCloud - Nacos

目录 服务注册到Nacos 服务分级存储模型 NacosRule负载均衡 服务实例的权重设置 环境隔离 Nacos与Eureka的对比 添加Nacos配置 微服务配置拉取 配置热更新 多环境配置共享 服务注册到Nacos 1.在父工程引入SpringCloudAlibaba的依赖 2.注释掉order-service和user-ser…

@KafkaListener 详解及消息消费启停控制

参考:Kafka参数一、KafkaListener注解KafkaListener(id "11111", groupId "demo-group",topics Constants.TOPIC)public void listen(String msgData) {LOGGER.info("收到消息" msgData); } KafkaListener(id "22222"…

React系列之Redux

1 Redux概述 Redux 是 JavaScript 状态容器,提供可预测化的状态管理。Redux中文文档 Redux 和react没有必然关系,redux可以应用于各种框架,包括jquery,甚至js都可以使用redux,只不过redux和react更加搭配。redux也推…

javaee之git

一张图说明git 分支之间的操作 这个 框里面的linux命令都可以用 操作开始: 在master分支里面创建了一个hello.txt,并且放入了一些数据进去 这个去查一下日志 问题:当你放入了暂存区,你去查看日志会报错 一个分支这个指针head永…

Django框架之Django使用自带模板

Django使用自带模板 1 配置 在工程中创建模板目录templates。 在settings.py配置文件中修改TEMPLATES配置项的DIRS值: TEMPLATES [{BACKEND: django.template.backends.django.DjangoTemplates,DIRS: [os.path.join(BASE_DIR, templates)], # 此处修改APP_DIR…

vue-router 的基本用法

vue-router 的基本用法 1.什么是 vue-router vue-router 是 vue.js 官方给出的路由解决方案。它只能结合 vue 项目进行使用,能够轻松的管理 SPA 项目中组件的切换。 vue-router 的官方文档地址:https://router.vuejs.org/zh/ 2.vue-router 安装和配置的…