python 之 海龟绘图(turtle)

news/2024/11/16 11:44:23/

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


使用简介

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-8import 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.ppmy.cn/news/26678.html

相关文章

STM32 OTA应用开发——自制BootLoader

STM32 OTA应用开发——自制BootLoader 目录STM32 OTA应用开发——自制BootLoader前言1 环境搭建2 BootLoader工作原理以及常见分区介绍3 BootLoader的制作4 烧录下载配置5 运行测试结束语前言 什么是OTA? 百度百科:空中下载技术(Over-the-Ai…

华为OD机试 - 乘积最大值(JavaScript) | 机试题+算法思路+考点+代码解析 【2023】

乘积最大值 题目 给定一个元素类型为小写字符串的数组 请计算两个没有相同字符的元素长度乘积的最大值 如果没有符合条件的两个元素返回0 输入 输入为一个半角逗号分割的小写字符串数组 2 <= 数组长度 <= 100 0 < 字符串长度 <= 50 输出 两个没有相同字符的元…

【学习总结】激光雷达与相机外参标定:代码(cam_lidar_calibration)

前段时间尝试了一款激光雷达和相机标定的代码&#xff0c;总结了博客&#xff1a; 【学习总结】激光雷达与相机外参标定&#xff1a;原理与代码 但总觉得那个代码太差劲&#xff0c;而且精度不行&#xff0c;于是又找了些新的代码&#xff0c;体验比之前的好很多&#xff0c;在…

加入CSDN的一年,我收获了这些……

加入CSDN的一年&#xff0c;我收获了这些……加入CSDN的一年&#xff0c;我收获了这些……加入CSDN的一年&#xff0c;我收获了这些…… &#x1f680;&#x1f680;时光如白驹过隙般&#xff0c;飞逝而过。一转眼&#xff0c;我就已经是一名大二的学生了&#xff0c;也已经在…

2019蓝桥杯真题旋转 C语言/C++

题目描述 图片旋转是对图片最简单的处理方式之一&#xff0c;在本题中&#xff0c;你需要对图片顺时针旋转 90 度。 我们用一个 nm 的二维数组来表示一个图片&#xff0c;例如下面给出一个 34 的 图片的例子&#xff1a; 1 3 5 7 9 8 7 6 3 5 9 7 这个图片顺时针旋转 90 度…

最全面的SpringBoot教程(六)——SpringBoot运行原理分析

前言 本文为 最全面的SpringBoot教程&#xff08;六&#xff09;——SpringBoot运行原理分析 相关知识&#xff0c;下边将对SpringBoot运行原理以及自动配置原理进行详尽的分析介绍~ &#x1f4cc;博主主页&#xff1a;小新要变强 的主页 &#x1f449;Java全栈学习路线可参考…

掌握MySQL分库分表(三)水平分库分表常见策略range、hash

文章目录range策略Range策略延伸基于Range范围分库分表业务场景hash取模案例规则水平分库分表&#xff0c;根据什么规则进行划分&#xff1f; range策略 自增id&#xff0c;根据ID范围进行分表&#xff08;左闭右开&#xff09; 规则案例&#xff1a; 1~1,000,000 是 table…

《FPGA学习》->呼吸灯

&#x1f34e;与其担心未来&#xff0c;不如现在好好努力。在这条路上&#xff0c;只有奋斗才能给你安全感。你若努力&#xff0c;全世界都会为你让路。呼吸灯&#xff0c;简而言之就像人类呼吸一样&#xff0c;有节奏的让LED灯从&#xff1a;灭->微微亮->微亮->亮-&g…