一、简介

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学习笔记相关推荐

  1. python画图如何调整图例位置_Python——legend()图例位置调整

    Legend()参数调整图例位置 在日常使用中,有时默认的图例位置不符合我们的需要,那么我们可以添加参数对图例的位置进行调整. matplotlib.pyplot.legend(loc='String ...

  2. python中socket模块常用吗_python网络学习笔记——socket模块使用记录

    此文章记录了笔者学习python网络中socket模块的笔记. 建议初次学习socket的读者先读一遍socket模块主要函数的介绍. socket模块的介绍可以参考笔者的前一篇关于socket官方文 ...

  3. python画图如何调整图例位置_python图例参数

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! matplotlib.orgapi_as_genmatplotlib.pyplo ...

  4. python中字符串函数的作用_python 基础学习笔记(2)---字符串功能函数

    **上一篇写到了,基本的数据类型,今天重点来讲一下字符串的功能函数** 回顾一下上篇的内容: 一.int 整型,在python 3 中与long型合并 可以达到 -922337203685477580 ...

  5. python僵尸进程和孤儿进程_Python Web学习笔记之并发编程的孤儿进程与僵尸进程...

    1.前言 之前在看<unix环境高级编程>第八章进程时候,提到孤儿进程和僵尸进程,一直对这两个概念比较模糊.今天被人问到什么是孤儿进程和僵尸进程,会带来什么问题,怎么解决,我只停留在概念上 ...

  6. Canvas画文字、渐变文字以及调整文字位置

    一.画文字 代码如下: <style>canvas {margin: 0 auto;border: 2px solid #aaa;display: block; /*画布居中*/} < ...

  7. 《python基础教程(第二版)》学习笔记 基础部分(第1章)

    <python基础教程(第二版)>学习笔记 基础部分(第1章) python常用的IDE: Windows: IDLE(gui), Eclipse+PyDev; Python(comman ...

  8. python segy格式地震数据读写包segyio学习笔记(二)

    python segy格式地震数据读写包segyio学习笔记(二) 最近大致搞明白了segyio读取叠后和叠前segy数据的方法,以及内部存储结构,以两段代码为例: 叠后数据读取.这是一个从给定时窗内 ...

  9. python word 操作 doc 文件格式转docx 格式 学习笔记

    python word 操作 doc 文件格式转docx 格式 学习笔记 from win32com import client as wc import time # TODO file_0 = & ...

最新文章

  1. 分享几个用 Python 给图片添加水印的方法,简单实用
  2. one of the variables needed for gradient computation has been modified by an inplace operation
  3. 网络犯罪分子为何针对中小企业?—Vecloud微云
  4. 单链表删除所有值为x的元素_C/C++编程笔记:如何使用C++实现单链表?单链表的基本定义...
  5. PowerDesigner运行自定义VBS脚本,复制Name到Comment
  6. js高级学习笔记(b站尚硅谷)-12-执行上下文
  7. 机器学习——LBP特征
  8. 目标检测:Object Detection in 20 Years: A Survey
  9. vue + pdf.js实现浏览器查看pdf文件
  10. 计算机公共基础知识论文,公共基础知识学术论文.docx
  11. CSS基础--美化视觉效果
  12. FastStone注册码
  13. cython 安装升级_浅尝Kivy
  14. 智慧工厂是什么 智慧工厂方案举例 智慧工厂案例
  15. 聊城大学计算机学院2016级11班,E·社会实践 | “观运河风采,忆聊城古韵”——2016级11班...
  16. 有什么哪些便宜的云服务器推荐?
  17. maven--profile--使用/教程/示例
  18. 专攻国内实体瘤CAR-T细胞疗法,南京卡提医学获数千万元A轮融资
  19. 华唯鑫能油的推荐每日一练|你知道的液体燃料有哪些?
  20. 基于遗传算法的BP神经网络优化算法(GA BP)实用算例

热门文章

  1. 【数据库】Mysql的REPLACE()函数替换字符串
  2. 【Python爬虫】Windows环境下wxpy不需每次登陆重新扫描
  3. noi.ac #543 商店
  4. VMware设置及linux静态ip设置
  5. [Android-Appium]: 安卓自动化测试: 环境准备
  6. 嵌入式软件工程师笔试题
  7. 《软件测试技术》课程第二周随笔
  8. 函数体中定义的结构体和类型
  9. java综合案例_综合实例 - Java House - BlogJava
  10. mongoose mysql_mongoose入门