[Python学习笔记] turtle库的基本使用

时间:2023-03-08 16:53:24

turtle库常用函数

  • 引入turtle模块
import turtle
  • turtle的绘图窗体
#setup()设置窗口大小及位置
#setup()可省略
turtle.setup(width,height,startx,starty)
turtle.setup(800,800,0,0)
turtle.setup(800,800)
  • turtle的RGB色彩模式
#默认采用小数值 可切换为整数值
#1.0:RGB小数值模式
#255:RGB整数值模式
turtle.colormode(mode)
  • 画笔控制函数
#抬起画笔
turtle.penup() #turtle.pu()
#落下画笔
turtle.pendown() #turtle.pd() #画笔宽度
turtle.pensize(width) #turtle.width(width) #画笔颜色
turtle.pencolor(color) #color为颜色字符串或r,g,b值
turtle.pencolor("purlple")#颜色字符串
turtle.pencolor(0.63,0.13,0.94)#RGB的小数值
turtle.pencolor((0.36,0.13,0.94))#RGB的元组值
  • 运动控制函数
#将画笔移动到坐标为(x,y)的位置
turtle.goto(x,y)
turtle.goto(100,100)
turtle.goto(0,0)
#向前行进d,d可以为负数
turtle.forward(d)
turtle.fd(d)
turtle.fd(100) #向后行进d,d可以为负数
turtle.backword(d)
turtle.bk(d)
turtle.bk(100) #根据半径r绘制extent角度的弧形
#r:默认圆心在海龟左侧r距离的位置
#extent:绘制角度。默认是360度整圆
turtle.circle(r,extent=None)
turtle.circle(100,90)
  • 方向控制函数
#seth()改变海龟行进方向
#angle为绝对度数
#seth()只改变方向但不行进
turtle.setheading(angle)
turtle.seth(angle)
turtle.seth(45)
turtle.seth(-135) #海龟向左转
#angle:在当前行进方向上旋转的角度
turtle.left(angle)
turtle.left(90) #海龟向右转
turtle.right(angle)
turtle.right(90)

 

#停止画笔绘制,但绘图窗体不关闭
turtle.done()

实例

#八边形绘制
import turtle
turtle.pensize(2)
for x in range(8):
turtle.fd(100)
turtle.left(45)
turtle.done()
#蟒蛇绘制
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,40)
turtle.fd(40)
turtle.circle(16,180)
turtle.fd(40*2/3)
turtle.done()
#风车绘制
import turtle
turtle.setup(650,650)
turtle.penup()
turtle.pensize(3)
turtle.pencolor("black")
turtle.pendown()
for x in [0,90,180,270]:
turtle.seth(x)
turtle.fd(100)
turtle.seth(x+90)
turtle.circle(100,-45)
turtle.goto(0,0)
turtle.done()
#叠边形绘制,叠边形内角为80度
import turtle
turtle.setup(650,550)
turtle.penup()
turtle.fd(-100)
turtle.pensize(5)
turtle.pencolor("black")
turtle.pendown()
for x in range(9):
turtle.fd(100)
turtle.left(80)
turtle.done()