python用turtle调整文字位置_Python turtle学习笔记
一、简介
Turtle最早来自于LOGO语言,是专门用于小孩子学习编程的,通过编程模拟一只turtle(海龟)在画板上爬行绘制图案,后来很多高级语言都移植了海龟绘图,python从2.6之后也将turtle库加入了其内部库中。由于是内部库,使用importturtle语句就能引入turtle库,绘图主要有以下几个步骤:设置画布、设置画笔、控制海龟移动绘制图形、色彩填充等。
二、基础知识
1)turtle库的引用
引用turtle库主要有以下三种方法:
1.使用import保留字直接引用
import turtle #每次使用函数需加上turtle.
2.使用from和import保留字共同完成
from turtle import * #调用函数时不用加turtle.,但可能会与变量名重复
3.使用import和as保留字共同完成
import turtle as t #给turtle库起了个别名t
2)画布
画布即turtle提供的绘图区域,可用以下指令设置画布的规模:
1.
turtle.setup(width,height, startx, starty)
width为画布的宽度;
heigh为画布的高度;
(startx,starty)这一坐标表示矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心。
如:
turtle.setup(650,300,100,100)
2.
turtle.screensize(canvwidth canvheight, bg)
canvwidth为画布的宽度;
canvheight为画布的高度;
bg为画布背景颜色。
如:
turtle.screensize(500,400,"red")
3)画笔
1、画笔的状态
在画布上,默认有一个坐标原点为画布中心的坐标轴,坐标原点上有一只面朝x轴正方向小乌龟。这里我们描述小乌龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中,就是使用位置方向描述小乌龟(画笔)的状态。
2、画笔的属性
画笔(画笔的属性,颜色、画线的宽度等)
turtle.penside() #设置画笔的宽度
turtle.pencolor() #没有参数传入,返回当前画笔颜色,传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB3元组。
turtle.speed(speed) #设置画笔移动速度,画笔绘制的速度范围[0,10]整数,数字越大越快。
4)操纵画笔的函数
绘制图形需要许多让画笔移动和转向甚至颜色的函数,常用到的函数有如下:
画笔操作后一直有效,一般成对使用
turtle.penup() #turtle.pu()提起画笔移动,不绘制图形
turtle.pendown() #turtle.pd()画笔落下
画笔设置后一直有效,直到下次重新设置
turtle.penside(width) #turtle.width(width) 设置画笔的宽度
turtle.pencolor(color) #设置画笔的颜色#color参数有三种形式#颜色字符串 如turtle.pencolor("pink")#RGB小数值 如turtle.pencolor(0.63,0.13,0.94)#RGB整数值 如turtle.pencolor(128,0,128)#RGB数值元组 如turtle.pencolor((0.63,0.13,0.94))
画笔改变角度的函数,只转不动
turtle.right(degree) #顺时针移动degree°
turtle.left(degree) #逆时针移动degree°
turtle.seth(degree) #只改变画笔方向但不移动,degree为绝对度数
画笔运动的函数
turtle.forward(distance) #向当前画笔方向移动distance像素长度
turtle.backward(distance) #向当前画笔相反方向移动distance像素长度
turtle.goto(x,y) #将画笔移动到坐标为x,y的位置
turtle.circle(r,extent) #根据半径r绘制extent角度的弧形,r默认在画笔左端距离r长度的地方,默认绘制完整的圆
三、绘制实例
1)Python蟒蛇绘制
代码如下:
#Python蟒蛇绘制
import turtle
turtle.setup(650, 350, 200, 200)
turtle.penup()
turtle.fd(-250)
turtle.pendown()
turtle.pensize(25)
turtle.pencolor("purple")
turtle.seth(-40)
for i in range(4):
turtle.circle(40, 80)
turtle.circle(-40, 80)
turtle.circle(40, 80/2)
turtle.fd(40)
turtle.circle(16, 180)
turtle.fd(40 * 2/3)
turtle.done()
效果图如下:
2)绘制一朵玫瑰花
代码如下:
#绘制一朵玫瑰花
import turtle
# 设置初始位置
turtle.penup()
turtle.left(90)
turtle.fd(200)
turtle.pendown()
turtle.right(90)
# 花蕊
turtle.fillcolor("lightpink")
turtle.begin_fill()
turtle.circle(10, 180)
turtle.circle(25, 110)
turtle.left(50)
turtle.circle(60, 45)
turtle.circle(20, 170)
turtle.right(24)
turtle.fd(30)
turtle.left(10)
turtle.circle(30, 110)
turtle.fd(20)
turtle.left(40)
turtle.circle(90, 70)
turtle.circle(30, 150)
turtle.right(30)
turtle.fd(15)
turtle.circle(80, 90)
turtle.left(15)
turtle.fd(45)
turtle.right(165)
turtle.fd(20)
turtle.left(155)
turtle.circle(150, 80)
turtle.left(50)
turtle.circle(150, 90)
turtle.end_fill()
# 花瓣1
turtle.left(150)
turtle.circle(-90, 70)
turtle.left(20)
turtle.circle(75, 105)
turtle.setheading(60)
turtle.circle(80, 98)
turtle.circle(-90, 40)
# 花瓣2
turtle.left(180)
turtle.circle(90, 40)
turtle.circle(-80, 98)
turtle.setheading(-83)
# 叶子1
turtle.fd(30)
turtle.left(90)
turtle.fd(25)
turtle.left(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(-80, 90)
turtle.right(90)
turtle.circle(-80, 90)
turtle.end_fill()
turtle.right(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(85)
#叶子2
turtle.fd(25)
turtle.left(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(-80, 90)
turtle.right(90)
turtle.circle(-80, 90)
turtle.end_fill()
turtle.right(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(85)
turtle.right(90)
turtle.fd(85)
# 叶子3
turtle.right(90)
turtle.fd(15)
turtle.right(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(80, 90)
turtle.left(90)
turtle.circle(80, 90)
turtle.end_fill()
turtle.left(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(90)
#叶子4
turtle.right(45)
turtle.fillcolor("green")
turtle.begin_fill()
turtle.circle(80, 90)
turtle.left(90)
turtle.circle(80, 90)
turtle.end_fill()
turtle.left(135)
turtle.fd(60)
turtle.left(180)
turtle.fd(75)
turtle.left(90)
turtle.circle(200, 60)
turtle.pendown()
turtle.done()
效果图如下:
3)绘制太极图
代码如下:
#绘制太极图
from turtle import *
setup(800,800,100,100)
#绘制左半部分
fillcolor('#FFFFFF')
begin_fill()
circle(100,180)
circle(200,180)
seth(180)
circle(-100,180)
end_fill()
seth(90)
penup()
fd(85)
pendown()
seth(0)
fillcolor('#000000')
begin_fill()
circle(25)
end_fill()
seth(-90)
penup()
fd(85)
pendown()
seth(180)
#绘制右半部分
fillcolor('#000000')
begin_fill()
circle(100,180)
circle(200,180)
seth(0)
circle(-100,180)
end_fill()
seth(-90)
penup()
fd(85)
pendown()
seth(-180)
fillcolor('#FFFFFF')
begin_fill()
circle(25)
end_fill()
hideturtle()
done()
效果图如下:
python用turtle调整文字位置_Python turtle学习笔记相关推荐
- python画图如何调整图例位置_Python——legend()图例位置调整
Legend()参数调整图例位置 在日常使用中,有时默认的图例位置不符合我们的需要,那么我们可以添加参数对图例的位置进行调整. matplotlib.pyplot.legend(loc='String ...
- python中socket模块常用吗_python网络学习笔记——socket模块使用记录
此文章记录了笔者学习python网络中socket模块的笔记. 建议初次学习socket的读者先读一遍socket模块主要函数的介绍. socket模块的介绍可以参考笔者的前一篇关于socket官方文 ...
- python画图如何调整图例位置_python图例参数
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! matplotlib.orgapi_as_genmatplotlib.pyplo ...
- python中字符串函数的作用_python 基础学习笔记(2)---字符串功能函数
**上一篇写到了,基本的数据类型,今天重点来讲一下字符串的功能函数** 回顾一下上篇的内容: 一.int 整型,在python 3 中与long型合并 可以达到 -922337203685477580 ...
- python僵尸进程和孤儿进程_Python Web学习笔记之并发编程的孤儿进程与僵尸进程...
1.前言 之前在看<unix环境高级编程>第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊.今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上 ...
- Canvas画文字、渐变文字以及调整文字位置
一.画文字 代码如下: <style>canvas {margin: 0 auto;border: 2px solid #aaa;display: block; /*画布居中*/} < ...
- 《python基础教程(第二版)》学习笔记 基础部分(第1章)
<python基础教程(第二版)>学习笔记 基础部分(第1章) python常用的IDE: Windows: IDLE(gui), Eclipse+PyDev; Python(comman ...
- python segy格式地震数据读写包segyio学习笔记(二)
python segy格式地震数据读写包segyio学习笔记(二) 最近大致搞明白了segyio读取叠后和叠前segy数据的方法,以及内部存储结构,以两段代码为例: 叠后数据读取.这是一个从给定时窗内 ...
- python word 操作 doc 文件格式转docx 格式 学习笔记
python word 操作 doc 文件格式转docx 格式 学习笔记 from win32com import client as wc import time # TODO file_0 = & ...
最新文章
- 分享几个用 Python 给图片添加水印的方法,简单实用
- one of the variables needed for gradient computation has been modified by an inplace operation
- 网络犯罪分子为何针对中小企业?—Vecloud微云
- 单链表删除所有值为x的元素_C/C++编程笔记:如何使用C++实现单链表?单链表的基本定义...
- PowerDesigner运行自定义VBS脚本,复制Name到Comment
- js高级学习笔记(b站尚硅谷)-12-执行上下文
- 机器学习——LBP特征
- 目标检测:Object Detection in 20 Years: A Survey
- vue + pdf.js实现浏览器查看pdf文件
- 计算机公共基础知识论文,公共基础知识学术论文.docx
- CSS基础--美化视觉效果
- FastStone注册码
- cython 安装升级_浅尝Kivy
- 智慧工厂是什么 智慧工厂方案举例 智慧工厂案例
- 聊城大学计算机学院2016级11班,E·社会实践 | “观运河风采,忆聊城古韵”——2016级11班...
- 有什么哪些便宜的云服务器推荐?
- maven--profile--使用/教程/示例
- 专攻国内实体瘤CAR-T细胞疗法,南京卡提医学获数千万元A轮融资
- 华唯鑫能油的推荐每日一练|你知道的液体燃料有哪些?
- 基于遗传算法的BP神经网络优化算法(GA BP)实用算例