1 安装turtle

Python2安装命令:

pip install turtule

Python3安装命令:

pip3 install turtle

因为turtle库主要是在Python2中使用的,所以安装的时候可能会提示错误:

Command "python setup.py egg_info" failed with error code 1

2 基础概念

2.1 画布(canvas)

画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置。

常用的画布方法有两个:screensize()和setup()。

(1)turtle.screensize(canvwidth=None, canvheight=None, bg=None)

参数分别为画布的宽(单位像素), 高, 背景颜色

如:

turtle.screensize(800, 600, "green")

turtle.screensize() #返回默认大小(400, 300)

(2)turtle.setup(width=0.5, height=0.75, startx=None, starty=None)

参数:

width, height: 输入宽和高为整数时, 表示像素; 为小数时, 表示占据电脑屏幕的比例

(startx, starty): 这一坐标表示 矩形窗口左上角顶点的位置, 如果为空,则窗口位于屏幕中心

如:

turtle.setup(width=0.6, height=0.6)

turtle.setup(width=800, height=800, startx=100, starty=100)

2.2 画笔

在画布上,默认有一个坐标原点为画布中心的坐标轴, 坐标原点上有一只面朝x轴正方向小乌龟。

这里我们描述小乌龟时使用了两个词语:标原点(位置),面朝x轴正方向(方向),turtle绘图中, 就是使用位置方向描述小乌龟(画笔)的状态

(1)画笔的属性

画笔有颜色、画线的宽度等属性。

1) turtle.pensize() :设置画笔的宽度;

2) turtle.pencolor() :没有参数传入返回当前画笔颜色;传入参数设置画笔颜色,可以是字符串如"green", "red",也可以是RGB 3元组。

>>> pencolor('brown')

>>> tup = (0.2, 0.8, 0.55)

>>> pencolor(tup)

>>> pencolor()

'#33cc8c'

3) turtle.speed(speed) :设置画笔移动速度,画笔绘制的速度范围[0,10]整数, 数字越大越快

(2)绘图命令

操纵海龟绘图有着许多的命令,这些命令可以划分为3种:运动命令,画笔控制命令和全局控制命令

画笔运动命令:

命令说明

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()

移动时不绘制图形,提起笔,用于另起一个地方绘制时用

turtle.speed(speed)

画笔绘制的速度范围[0,10]整数

turtle.circle()

画圆,半径为正(负),表示圆心在画笔的左边(右边)画圆

画笔控制命令:

命令说明

turtle.pensize(width)

绘制图形时的宽度

turtle.pencolor()

画笔颜色

turtle.fillcolor(colorstring)

绘制图形的填充颜色

turtle.color(color1, color2)

同时设置pencolor=color1, fillcolor=color2

turtle.filling()

返回当前是否在填充状态

turtle.begin_fill()

准备开始填充图形

turtle.end_fill()

填充完成;

turtle.hideturtle()

隐藏箭头显示;

turtle.showturtle()

与hideturtle()函数对应

全局控制命令

命令说明

turtle.clear()

清空turtle窗口,但是turtle的位置和状态不会改变

turtle.reset()

清空窗口,重置turtle状态为起始状态

turtle.undo()

撤销上一个turtle动作

turtle.isvisible()

返回当前turtle是否可见

stamp()

复制当前图形

turtle.write(s[,font=("font-name",font_size,"font_type")])

写文本,s为文本内容,font是字体的参数,里面分别为字体名称,大小和类型;font为可选项, font的参数也是可选项

3 绘图举例

3.1 太阳花

import turtle as t

import time

t.color("red", "yellow")

t.speed(10)

t.begin_fill()

for _ in range(50):

t.forward(200)

t.left(170)

end_fill()

time.sleep(1)

3.2 绘制小蟒蛇

import turtle

def drawSnake(rad, angle, len, neckrad):

for _ in range(len):

turtle.circle(rad, angle)

turtle.circle(-rad, angle)

turtle.circle(rad, angle/2)

turtle.forward(rad/2) # 直线前进

turtle.circle(neckrad, 180)

turtle.forward(rad/4)

if __name__ == "__main__":

turtle.setup(1500, 1400, 0, 0)

turtle.pensize(30) # 画笔尺寸

turtle.pencolor("green")

turtle.seth(-40) # 前进的方向

drawSnake(70, 80, 2, 15)

3.3 绘制五角星

import turtle

import time

turtle.pensize(5)

turtle.pencolor("yellow")

turtle.fillcolor("red")

turtle.begin_fill()

for _ in range(5):

turtle.forward(200)

turtle.right(144)

turtle.end_fill()

time.sleep(2)

turtle.penup()

turtle.goto(-150,-120)

turtle.color("violet")

turtle.write("Done", font=('Arial', 40, 'normal'))

time.sleep(1)

3.4 绘制谢尔宾斯基三角形

# coding: utf-8

import turtle

def draw_triangle(points, color, t):

t.fillcolor(color)

t.up()

t.goto(points[0][0], points[0][1])

t.down()

t.begin_fill()

t.goto(points[1][0], points[1][1])

t.goto(points[2][0], points[2][1])

t.goto(points[0][0], points[0][1])

t.end_fill()

def get_mid(point1, point2):

return (point1[0] + point2[0]) / 2, (point1[1] + point2[1]) / 2

def sierpinski(points, degree, t):

color_map = ['blue', 'red', 'green', 'yellow', 'violet', 'orange', 'white',]

draw_triangle(points, color_map[degree], t)

if degree > 0:

sierpinski([points[0], get_mid(points[0], points[1]), get_mid(points[0], points[2])], degree - 1, t)

sierpinski([points[1], get_mid(points[0], points[1]), get_mid(points[1], points[2])], degree - 1, t)

sierpinski([points[2], get_mid(points[0], points[2]), get_mid(points[1], points[2])], degree - 1, t)

if __name__ == "__main__"

t = turtle.Turtle()

t.speed(5)

win = turtle.Screen()

points = [[-100, -50], [0, 100], [100, -50]]

sierpinski(points, 3, t)

win.exitonclick()

python使用-Python的使用方法相关推荐

  1. 怎么用python找论文_如何利用Python绘制学术论文图表方法

    论文中图表形式多样,常用的处理工具有excel.MATLAB以及Python等,excel自处理的方法有两个缺陷: 1.当数据较多时,容易出现excel"翻白眼"的现象: 2.需要 ...

  2. python加载图片的方法_python从网络读取图片并直接进行处理的方法

    python从网络读取图片并直接进行处理的方法 更新时间:2015年05月22日 10:09:08 作者:pythoner 这篇文章主要介绍了python从网络读取图片并直接进行处理的方法,涉及cSt ...

  3. php判断网页编码,python判断网页编码的方法

    在web开发的时候我们经常会遇到网页抓取和分析,各种语言都可以完成这个功能.我喜欢用python实现,因为python提供了很多成熟的模块,可以很方便的实现网页抓取. 但是在抓取过程中会遇到编码的问题 ...

  4. python使用imbalanced-learn的ClusterCentroids方法进行下采样处理数据不平衡问题

    python使用imbalanced-learn的ClusterCentroids方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜 ...

  5. python使用imbalanced-learn的AllKNN方法进行下采样处理数据不平衡问题

    python使用imbalanced-learn的AllKNN方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class ske ...

  6. python使用imbalanced-learn的NearMiss方法进行下采样处理数据不平衡问题

    python使用imbalanced-learn的NearMiss方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class s ...

  7. python使用imbalanced-learn的TomekLinks方法进行下采样处理数据不平衡问题

    python使用imbalanced-learn的TomekLinks方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class ...

  8. python使用imbalanced-learn的OneSidedSelection方法进行下采样处理数据不平衡问题

    python使用imbalanced-learn的OneSidedSelection方法进行下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏 ...

  9. python使用imbalanced-learn的SMOTE方法进行上采样处理数据不平衡问题

    python使用imbalanced-learn的SMOTE方法进行上采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(class skew ...

  10. python使用imbalanced-learn的SMOTEENN方法同时进行上采样和下采样处理数据不平衡问题

    python使用imbalanced-learn的SMOTEENN方法同时进行上采样和下采样处理数据不平衡问题 机器学习中常常会遇到数据的类别不平衡(class imbalance),也叫数据偏斜(c ...

最新文章

  1. 使用脚本创建查找修改销毁游戏对象
  2. Spring源码分析——Bean的生命周期
  3. DTCC 2020 | 阿里云张鑫:阿里云云原生异地多活解决方案
  4. mysql表操作_MySQL表操作语句用法百科
  5. 数据库原理----学习目标
  6. python class def 格式_Python symbol.classdef方法代码示例
  7. Android开发笔记(六十四)网页加载与JS调用
  8. MyEclipse2014+JDK1.7+Tomcat8.0+Maven3.2 开发环境搭建
  9. linux网卡mode6,RedHat/CentOS(Linux)双网卡bond(mode=6)
  10. 电商平台系统架构设计案例分析
  11. CenterOs底下安装redis
  12. 四种超实用的超级记忆法-数字定桩法,借助语句定桩法,标题定桩法,记忆宫殿法
  13. Spring(三) 表单页面处理
  14. c51中的_crol_和_cror_
  15. WIN7 旗舰版已激活但还是黑屏的解决方法
  16. Python学习-PY4E作业
  17. 淘宝开店经验 心得 攻略
  18. SpringCloud——网关2
  19. (转)CTA大佬Winton创始人:人工智能会颠覆传统投资吗?
  20. JSON.stringify()和JSON.parse()

热门文章

  1. python图片内容识别_ubuntu 安装 pytesseract 模块进行图片内容识别
  2. tensorflow精进之路(二十三)——Object Detection API目标检测(上)(Fast R-CNN算法)
  3. opencv将图像转换成二维数组再将数组数据传给新图像
  4. Learn OpenGL(三)——顶点着色器(Vertext Shader)
  5. 优化C/C++代码的小技巧
  6. sift算法的主要步骤
  7. tensorflow中如何进行可视化和减轻过拟合(转)
  8. TP5.0 PHPExcel 数据表格导出导入(原)
  9. Tomcat配置多个端口号或多个应用
  10. 四种变量的区别(局部变量,全局变量,静态局部变量,静态全局变量)