- 定义窗口的位置和大小:
turtle.setup(650, 350, 200, 200)
四个参数分别定义窗口的宽、高、窗口左上角的横纵坐标。
横纵坐标可选输入,默认值是居中,占屏幕的一半;
执行完setup函数后,画笔的起点在屏幕正中央,方向朝右;
turtle.setup(650, 350)
- turtle 空间坐标系
绝对坐标:屏幕的正中心是原点(0,0),把屏幕分成4个象限
turtle.goto(x,y),指的是让任何位置的海龟,到达指定的位置 - turtle的RGB色彩模式
turtle.colormode(mode)
mode = 1.0:RGB小数值模式
mode = 255:RGB整数值模式
- 画笔控制函数:画笔操作后一直有效,一般成对出现
turtle.penup()#抬起画笔海龟在飞行
turtle.pendown()#落下画笔,海龟在爬行
turtle.pensize(25)#海龟的宽度
turtle.pencolor("purple")#设置笔的颜色,color为颜色字符串或者RGB值
turtle.pencolor(“color”)的color可以有三种形式
(1) 颜色字符串turtle.pencolor(“purple”)
(2)RGB的小数值turtle.pencolor(0.1,0,1,0.1)
(3)RGB的元组值turtle.pencolor((0.1,0,1,0.1))
- 运动控制函数
turtle.fd(-250) #沿着海龟的前方向运行,数字表示前进距离,正数表示前行,负数表示后退,海龟的头的方向不变
turtle.bk(-250) #沿着海龟的反方向运行
turtle.circle(40, 80)# 沿着海龟左侧的某一点做圆运动,第一个参数为距离,第二个参数为角度,默认360度,如果第一个参数为负数,表示从右侧的某一点开始顺时针画圆
- 方向控制函数
turtle.seth(-40)#只改变海龟的行进方向(角度按逆时针),但不行进,angle为绝对度数
turtle.left(angle) 海龟向左转
turtle.right(angle) 海龟向右转
turtle.done()停止画笔绘制,但绘图窗体不关闭
接下来我们使用turtle绘制一个当前的系统时间,首先我们对数字进行分解,每个数字都是由7断线组成,画笔抬起或落下决定了数字的样式
首先定义一个函数drawLine(),绘制线条,每画完一条线,海龟方向向右转90度
def drawGap():
#画一段空白,使得数字好看
turtle.penup()
turtle.fd(5)
turtle.pendown()
def drawLine(draw):
#画一条线
drawGap()
turtle.pendown() if draw==True else turtle.penup()
turtle.fd(40) #线的长度是40
drawGap()
turtle.right(90) #向右转90度
再定义一个函数drawDigits,绘制每一个数字
def drawDigits(digit):
#画一个完整的数字
drawLine(True) if digit in (2,3,4,5,6,8,9) else drawLine(False)
drawLine(True) if digit in (0,1,3,4,5,6,7,8,9) else drawLine(False)
drawLine(True) if digit in (0,2,3,5,6,8,9) else drawLine(False)
drawLine(True) if digit in (0,2,6,8) else drawLine(False)
turtle.left(90) # 向左转90度,下一步要走直线,把drawline方法中转的90度转回来
drawLine(True) if digit in (0,4,5,6,8,9) else drawLine(False)
drawLine(True) if digit in (0,2,3,5,7,8,9) else drawLine(False)
drawLine(True) if digit in (0,1,2,3,4,7,8,9) else drawLine(False)
turtle.left(180) #海龟调整方向向右飞过去10,为下一个数字做准备
turtle.penup()
turtle.fd(10)
再定义一个函数drawDate,绘制日期
for i in Date:
if i == '-':
turtle.write("年", font=("Arial", 18, "normal"))
turtle.penup()
turtle.fd(50)
turtle.color("GREEN")
elif i == '+':
turtle.write("月", font=("Arial", 18, "normal"))
# turtle.left(180) # 海龟调整防线向右飞过去10,为下一个数字做准备
turtle.penup()
turtle.fd(50)
turtle.color("BLUE")
elif i == '=':
turtle.write("日", font=("Arial", 18, "normal"))
turtle.penup()
turtle.fd(50)
else:
drawDigits(eval(i))
main 函数
turtle.setup(1000,400,100,100)
turtle.delay(1) #设置绘图速度,速度越大越慢
turtle.penup()
turtle.fd(-350) #,起始位置在正中央,现在画笔后退一些距离
turtle.pensize(5)
turtle.color("RED")
date = time.strftime('%Y-%m+%d=',time.localtime(time.time()))
drawDate(date)
turtle.hideturtle()
turtle.done()
绘制效果,完美