python:turtle库和turtle方法的使用,绘制7段数码管

  1. 定义窗口的位置和大小:
turtle.setup(650, 350, 200, 200) 
四个参数分别定义窗口的宽、高、窗口左上角的横纵坐标。
横纵坐标可选输入,默认值是居中,占屏幕的一半;
执行完setup函数后,画笔的起点在屏幕正中央,方向朝右;
turtle.setup(650, 350)
  1. turtle 空间坐标系
    绝对坐标:屏幕的正中心是原点(0,0),把屏幕分成4个象限
    turtle.goto(x,y),指的是让任何位置的海龟,到达指定的位置
  2. turtle的RGB色彩模式
   turtle.colormode(mode)
mode = 1.0:RGB小数值模式
mode = 255:RGB整数值模式
  1. 画笔控制函数:画笔操作后一直有效,一般成对出现
   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))

  1. 运动控制函数
    turtle.fd(-250) #沿着海龟的前方向运行,数字表示前进距离,正数表示前行,负数表示后退,海龟的头的方向不变
    turtle.bk(-250) #沿着海龟的反方向运行

turtle.circle(40, 80)# 沿着海龟左侧的某一点做圆运动,第一个参数为距离,第二个参数为角度,默认360度,如果第一个参数为负数,表示从右侧的某一点开始顺时针画圆

  1. 方向控制函数

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()

绘制效果,完美
在这里插入图片描述

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值