杂谈发现一只网站是你们谁做的,网页制作费用明细,网站开发者账号购买,微网站如何做微信支付宝一、基础
#xff08;一#xff09;介绍
海龟绘图#xff08;Turtle Graphics#xff09;#xff1a;“小海龟”turtle是Python语言中一个很流行的绘制图像的函数库#xff0c;想象一个小乌龟#xff0c;在一个横轴为x、纵轴为y的坐标系原点#xff0c;(0,0)位置开始…一、基础
一介绍
海龟绘图Turtle Graphics“小海龟”turtle是Python语言中一个很流行的绘制图像的函数库想象一个小乌龟在一个横轴为x、纵轴为y的坐标系原点(0,0)位置开始它根据一组函数指令的控制在这个平面坐标系中移动从而在它爬行的路径上绘制了图形。
海龟绘图turtle库是python的内部模块,使用前导入即可 import turtle海龟有3个关键属性方向、位置和画笔笔的属性有色彩、宽度和开关状态
1.基本元素
画布就是turtle为我们展开用于绘图区域, 我们可以设置它的大小和初始位置。
1画布canvas
turtle.screensize(canvwidthNone,canvheightNone,bgNone)参数分别代表画布的宽、高单位像素和背景颜色
turtle.screensize(800,600,green)
turtle.screensize() #默认返回400,300,white另一种设置画布大小的方式
turtle.setup(width0.5,height0.75,startxNone,startyNone)
turtle.setup(width800,height0.8)
turtle.setup(width800,height600,startx100,starty200)当长和宽是小数时代表占据整个屏幕的比例为整数时代表像素大小。startx,starty代表窗口左上角的位置如果为空整个窗口位于屏幕中心。
2 画笔Pen 使用 turtle.Pen() 来创建画笔对象
import turtle
turtle.Pen()
turtle.mainloop()#画面保持代码执行后就建立了画布同时屏幕中间可以看见箭头(arrow)即所谓的海龟。 在海龟绘图中海龟的起点即画布中央为 (0,0)移动单位是像素 (pixel)描述海龟时使用了两个词语:坐标原点(位置),面朝x轴正方向(方向), turtle绘图中, 就是使用位置方向描述海龟(画笔)的状态
3绘图命令 绘图命令主要分为三种 画笔运动命令 画笔控制命令 全局控制命令 画笔运动命令 画笔控制命令 全局控制命令 turtle.circle(radius,extentNone,stepsNone)#radius半径正负有别extent代表弧度steps内切正多边形的边数
turtle.setheading(angle)#转变方向angle指绝对角度只改变方向不行进
turtle.done() #停止画笔绘制但是不关闭窗口 二、实例
1.正方形
import turtleturtle.setup(800, 400) #调整画板大小
turtle.up() #提起笔
turtle.goto(-50, 50) #调整画板起始点
turtle.down() #放下笔
turtle.color(red) #画笔颜色
turtle.speed(1) #控制绘画速度# 画图过程
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.forward(100)
# 保持画面
turtle.mainloop()2.递归绘制树
from turtle import *
# 相比于 import turtle as * 这样的区别# 绘制过程使用递归算法后续解释
def tree(branchLen, t):if branchLen 5:t.forward(branchLen)t.right(20)tree(branchLen - 15, t)t.left(40)tree(branchLen - 10, t)t.right(20)t.backward(branchLen)t Turtle()
myWin t.getscreen() # 获取屏幕
t.speed(0)
t.hideturtle() # 隐藏箭头
t.left(90) # 掉转绘制方向朝上
t.up() # 画笔离开
t.backward(300) # 将画笔移动到屏幕下方
t.down() # 画笔落下
t.color(green) #调整画笔颜色
tree(110, t) #调用绘制函数
myWin.exitonclick() # 点击关闭屏幕3.旋转多边形
import turtle as ta 200
t.speed(0)
t.color(green)
for x in range(1, 37):t.forward(a)t.left(90)t.forward(a)t.left(90)t.forward(a)t.left(90)t.forward(a)t.left(100)
t.mainloop()4.彩色多边形
import turtlet turtle.Pen()
t.pensize(5)
colorValue 1
colorStep colorValue / 36
t.speed(0)
for x in range(1, 37):colorValue - colorStept.color(0.5, 1, colorValue)t.forward(200)t.left(90)t.forward(200)t.left(90)t.forward(200)t.left(90)t.forward(200)t.left(100)
turtle.mainloop()5.五角星
import turtletturtle.Pen()
t.hideturtle()
t.pensize(5) #画笔粗细
t.color(yellow,yellow)
t.begin_fill()
t.up()
t.goto(-100,50)#画笔移动到画布较为中心的位置
t.down()
for i in range(1,6):t.forward(200)t.right(144)
t.end_fill()
turtle.done() #类似Mainloop一个循环函数保证画布持续存在6.迭代五角星
from turtle import *pen()
pencolor(red)
speed(0)for i in range(20):forward(i*20)right(144)done() 7.彩色五角星
from turtle import *pensize(5)
color(yellow, red)
begin_fill() # 准备填充
for i in range(5):forward(200)right(144)end_fill() # 填充完毕up()
goto(-200, -100) # 将海龟移动到此位置
pencolor(violet) # 颜色选用紫罗兰
write(WY, False, left, font(Arial, 40, normal)) # 在当前位置输入字符“wy”光标回到左下角font中三项分别指定字型、字号和形式
done()import turtleturtle.pensize(5)
turtle.pencolor(yellow)
turtle.fillcolor(red)turtle.begin_fill()
for i in range(5):turtle.forward(100)turtle.right(144)turtle.forward(100)turtle.left(72)
turtle.end_fill()turtle.hideturtle()
turtle.done()8.同心圆
代码1
import turtle as t
for i in range(10,100,10):t.circle(i)t.penup()t.right(90)t.fd(10)t.left(90)t.pendown()
t.done() 代码2
import turtle as t
for i in range(10,100,10):t.circle(i)t.penup()t.goto(0,-i)t.pendown()
t.done()运行截图
9.奥运五环
代码
import turtle
r45
xy_list[(-110,-25),(0,-25),(110,-25),(-55,-75),(55,-75)]
color_list[red,yellow,green,blue,black]
turtle.pensize(5)
for i in range(5):turtle.penup()turtle.goto(xy_list[i])turtle.pendown()turtle.pencolor(color_list[i])turtle.circle(r)
turtle.hideturtle()
turtle.done()运行截图
10.绘制风轮
代码
import turtle as t
t.pensize(2)
for i in range(4):t.seth(90*i)t.fd(150)t.right(90)t.circle(-150,45)t.goto(0,0)
t.done()运行截图 11.太阳花
代码1
import turtle as t
t.color(red,yellow)
t.begin_fill()
for _ in range(50):t.forward(200)t.left(170)t.end_fill()
t.mainloop()运行截图1 代码2
import turtle as t
import timet.color(red, yellow)
t.speed(10)
t.begin_fill()
for _ in range(25):t.forward(200)t.left(165)t.end_fill()
time.sleep(5)运行截图2
12.四叶草
import turtleturtle.title(四叶草) #画布标题
# turtle.bgcolor(green) #背景颜色
turtle.pensize(5) #画笔宽度
turtle.speed(2) #海龟移动速度
turtle.fillcolor(green) #填充的颜色
turtle.begin_fill() #开始填色# 花瓣
for i in range(4):turtle.circle(80, 50)turtle.circle(20, 180)turtle.left(180)turtle.circle(20, 180)turtle.circle(80, 50)turtle.left(180)
turtle.end_fill() #结束填色# 花心
turtle.penup()
turtle.goto(-15, 0)
turtle.pendown()
turtle.circle(1)# 花枝
turtle.penup()
turtle.goto(-10, -10)
turtle.pendown()
turtle.right(90)
turtle.circle(-200, 80)# 打印
turtle.penup()
turtle.goto(0, 100) #移动位置改变write的位置
turtle.write( Good Luck !, font (arial, 18, normal)) #打印内容
turtle.done() #手动关闭13.蛇
from turtle import *setup(900, 350, 200, 200)
up()
fd(-350)
down()
pensize(25)
color(purple)# 控制画笔起始方向
seth(-40)
# 绘制蛇身
for i in range(4):circle(60, 80)circle(-60, 80)
circle(60, 80 / 2)
# 绘制蛇头
fd(60)
circle(32, 180)
fd(60 * 2 / 3)done()