Python海龟画图

Turtle图形库:Python内置的图形化模块,属于标准库之一,位于Python安装目录的lib文件夹下。

一、Turtle绘图基础知识

在Turtle图形库中有许多常用的函数

1.画布

画布是turtle用于绘图的区域,我们可以对画布的大小、颜色等进行设置

turtle.screen(1000,800,"blue")
#参数分别对应的是画布的宽、高(单位是像素)、背景颜色

turtle.screen()
#恢复默认值(500,400,“white”)

turtle.setup(width=0.5,height=0.75,startx=None,starty=None)
#width,height:输入宽和高为整数时,表示像素;为小数时,表示占据电脑屏幕的比例
#(startx,starty):表示矩形窗口定点的位置,如果为None,则窗口位于屏幕中心。

2.画笔

在学习画笔之前我们需要先对坐标轴进行了解。

在画布上,默认画笔位于坐标原点,朝向x轴正方向。(有的博主会形象地把画笔比喻为小乌龟)

描述画笔状态的两个参量:坐标位置、面向方向。

turtle.pensize()
#设置画笔的宽度

turtle.pencolor()
#没有参数传入,返回当前画笔颜色;
#传入参数设置画笔颜色,可以是字符串“red”等,也可以是RGB 3元组

turtle.speed()
#设置画笔移动速度,速度是[0,10]范围内的整数,数字越大,移动速度越快

3.turtle绘图命令函数代码

turtle绘图主要分为三种命令代码:画笔运动命令、画笔控制命令、全局控制命令。

(1)画笔运动命令
turtle.penup
#提起画笔移动,不会绘制出图形
turtle.pendown
#放下画笔移动,会绘制出图形

turtle.goto()
#传入参数(100,100),画笔就会到达坐标(100,100)
#如果是在pendown状态下,画笔就会从起始位置画一条直线到达(100,100)
#如果是在penup状态下,画笔就会直接到达(100,100)
turtle.home()
#使画笔回到原点位置
#pendown状态下,画笔会从上一位置画一条直线到达原点
#penup状态下,画笔会直接回到原点

turtle.forward()
#传入参数(100),就会向当前方向移动100像素长度
turtle.backward()
#传入参数(100),就会向当前方向的相反方向移动100像素长度

turtle.seth()
#传入参数(90),绝对旋转,以坐标轴方向为参考系旋转
#再次输入turtle.seth(90),方向不会发生变化
turtle.right()
#传入参数(90),相对旋转,以当前方向为参考系顺时针旋转
#再次输入turtle.right(90),方向发生改变
turtle.left()
#传入参数(90),相对旋转,以当前方向为参考系逆时针旋转
#再次输入turtle.left(90),方向发生改变

turtle.circle()
#传入参数(radius,extent),也就是传入半径和度数
#半径必填,但是度数可以不填,不填默认度数为(360)

turtle.setx()
#移动到x轴指定位置
#如果是在pendown状态下,画笔就会从上一位置画一条直线到达横坐标为100的位置,纵坐标不变
#如果是在penup状态下,画笔就会直接到达横坐标为100的位置,纵坐标不变
turtle.sety()
#移动到y轴指定位置
#如果是在pendown状态下,画笔就会从上一位置画一条直线到达纵坐标为100的位置,横坐标不变
#如果是在penup状态下,画笔就会直接到达纵坐标为100的位置,横坐标不变
(2)画笔控制命令
turtle.pencolor()
#设置画笔颜色,可传入参数"red","green","blue"等或者RGB三元组
turtle.fillcolor()
#设置绘制图形的填充颜色,可传入参数"red","green","blue"等或者RGB三元组
turtle.color(color1,color2)
#同时设置pencolor=color1 fillcolor=color2


turtle.filling()
#返回当前是否在填充状态
turtle.begin_fill()
#准备开始填充图形
turtle.end_fill()
#填充完成

turtle.hideturtle
#隐藏画笔的turtle形状
turtle.showturtle
#显示画笔的turtle形状
(3)全局控制命令
turtle.clear()
#清空turtle窗口,但是turtle的位置和状态不会改变

turtle.reset()
#清空窗口,重置turtle状态为起始状态

turtle.undo()
#撤销上一个turtle动作

turtle.isvisible()
#返回当前turtle是否可见

turtle.stamp()
#复制当前图形

二、画图案例

简易五环

import turtle

turtle.width(10)

turtle.color("blue")
turtle.circle(50)
turtle.penup()
turtle.goto(120,0)
turtle.pendown()

turtle.color("black")
turtle.circle(50)
turtle.penup()
turtle.goto(240,0)
turtle.pendown()

turtle.color("red")
turtle.circle(50)
turtle.penup()
turtle.goto(60,-50)
turtle.pendown()

turtle.color("yellow")
turtle.circle(50)
turtle.penup()
turtle.goto(180,-50)
turtle.pendown()

turtle.color("green")
turtle.circle(50)
turtle.penup()
turtle.goto(300,-50)
turtle.pendown()

turtle.done()

Python海龟画图_第1张图片

风车

import turtle

turtle.pensize(2)
turtle.speed(1)

for x in range(4):
    turtle.seth(45*(2*x+1))
    turtle.fd(150)
    turtle.seth(90*(x+1)+45)
    turtle.circle(150,45)
    turtle.goto(0,0)

turtle.done()

Python海龟画图_第2张图片

回形图

import turtle

turtle.pensize(2)

for x in range(100):
    turtle.fd(x*2+1)
    turtle.right(90)
    if(x % 2 == 0):
        turtle.pencolor("red")
    else:
        turtle.pencolor("green")
turtle.done()

Python海龟画图_第3张图片

你可能感兴趣的:(Python,python,开发语言)