一、基础小结
turtle库是python标准库之一,入门级绘图库。import turtle之后即可使用。
1、绘图窗口设置命令
turtle.setup(400,300,200,100):参数以此(宽,高,距离屏幕左边距离,距离屏幕上方距离),屏幕左上角原点,单位像素。
2、运动命令
turtle.goto(x,y):直接跳转到(x,y)点,以绘图窗口中心为原点,向右为x轴,向上为y轴。
turtle.fd(d)、turtle.forward(d):以当前方向,往前行进d像素。
turtle.bk(d)、turtle.backword(d):保持当前方向不变,往后退行d像素。
turtle.circle(r,angle):从当前位置以r为半径圆的angle角度旋转。
circle(100,180) circle(100,-180) ciecle(-100,180) circle(-100,-180)
3、方向设置命令
turtle.seth(angle):以x轴方向为起点将方向偏转为angle度,逆时针为正。只改变行进方向但不行进。
turtle.left(angle):在当前行进方向的基础上,向左旋转angle度。
turtle.right(angle):在当前行进方向的基础上,向右旋转angle度。
4、画笔控制命令
turtle.penup():台笔
turtle.pendown():落笔
turtle.pensize(width):画笔粗细
turtle.pencolor(颜色名red/RGB三元组/颜色编码):画笔颜色
turtle.fillcolor(colorstring):绘制图形的填充颜色
turtle.begin_fill():开始填充
turtle.end_fill():结束填充
turtle.filling():返回当前是否在填充状态
二、牛刀小试
1、使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制一个等边三角形,边长为 200 像素,效果如下图所示。
import turtle as t
for i in range(3):
t.seth(i*120)
t.fd(200)
2、使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制一个边长为 200 的正方形,效果如下图所示。
import turtle
d = 0
for i in range(4):
turtle.fd(200)
d=d+90
turtle.seth(d)
3、使用 turtle 库的 turtle.right() 函数和 turtle.fd() 函数绘制一个菱形四边形,边长为 200 像素,效果如下图所示。
import turtle as t
t.right(-30)
for i in range(2):
t.fd(200)
t.right(60*(i+1))
for i in range(2):
t.fd(200)
t.right(60*(i+1))
4、用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制一个五边形,边长为 200 像素,效果如下图所示。
import turtle
d = 0
for i in range(5):
turtle.fd(200)
d += 72
turtle.seth(d)
5、用 turtle 库的 turtle.fd() 函数和 turtle.left() 函数绘制一个六边形,边长为 200 像素,效果如下图所示。
import turtle as t
for i in range(6):
t.fd(200)
t.left(60)
6、使用 turtle 库的 turtle.circle() 函数、turtle.seth() 函数和 turtle.left() 函数绘制一个四瓣花图形,从左上角花瓣开始,逆时针作画,效果如下图所示。
import turtle as t
for i in range(4):
t.seth(90 * (i + 1))
#90,180,270,360
t.circle(200,90)
#-90,0,90,180
t.seth(-90 + i * 90)
t.circle(200,90)
7、使用 turtle 库的 turtle.right() 函数和 turtle.circle() 函数绘制一个四叶草,效果如下图所示。
import turtle
for i in range(4):
turtle.right(90)
turtle.circle(50,180)
8、使用 turtle 库的 turtle.right() 函数和 turtle.circle() 函数绘制一个星星图形(半径为90),如下图所示。
import turtle
for i in range(4):
turtle.circle(-90,90)
turtle.right(180)
9、使用 turtle 库的 turtle.circle() 函数和 turtle.seth() 函数绘制套圈,最小的圆圈半径为 10 像素,不同圆圈之间的半径差是 40 像素。效果如下图所示。
import turtle
r =10
head = 90
for i in range (4):
turtle.seth(head)
turtle.circle (r)
r = r + 40
turtle.done()
10、使用 turtle 库的 turtle.circle() 函数和 turtle.seth() 函数绘制同心圆套圈,最小的圆圈半径为 10 像素,不同圆圈之间的半径差是 40 像素,效果如下图所示。
import turtle
r = 10
dr = 40
head = 90
for i in range (4):
turtle.pendown()
turtle.circle(r)
r += dr
turtle.penup()
turtle.seth(-head)
turtle.fd(dr)
turtle.seth(0)
turtle.done()
11、使用 turtle 库的 turtle.fd() 函数和 turtle.seth() 函数绘制螺旋状的正方形,正方形边长从 1 像素开始,第一条边从 0 度方向开始。效果如下图所示。
import turtle
d = 0
k = 1
for j in range(10):
for i in range(4):
turtle.fd(k)
d += 91
turtle.seth(d)
k += 2
turtle.done()
12、使用turtle库绘制类似斯洛克形状图案,效果如下图所示。
import turtle
def drawCircle():
turtle.pendown()
turtle.circle(20)
turtle.penup()#向某个方向前进40,抬笔
turtle.fd(40)
def drawRowCircle(n):
for j in range(n,1,-1):#从上往下画圆圈
for i in range(j):
drawCircle()#这一句应该是要画图
turtle.fd(-j*40-20)#下面这部分是在换行
turtle.right(90)
turtle.fd(40)
turtle.left(90)
turtle.fd(40)
drawCircle()
drawRowCircle(5)
turtle.hideturtle()
turtle.done()
13、使用turtle库的turtle.fd()函数和turtle.seth()函数绘制嵌套六角形,六角形边长从1像素开始,第一条边从0度方向开始,边长按照3个像素递增,效果如下图所示。
import turtle
edge = 6
d = 0
k = 1
for j in range(10):
for i in range(edge):
turtle.fd(k)
d += 360/edge
turtle.seth(d)
k += 3
turtle.done()
————————————————
版权声明:本文为CSDN博主「eook767117193」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/u014041590/article/details/88913903