首页 > 其他分享 >七段数码管绘制

七段数码管绘制

时间:2023-11-22 18:11:42浏览次数:38  
标签:turtle draw else 数码管 line month 绘制 day 七段

 

 

import turtle,datetime
# 定义一个,用于绘制代码管的间隙
def draw_gap():
turtle.penup()
turtle.forward(5)

# 定义一个函数,用于绘制一段代码管,这里传入的参数输一个bool类型
def draw_line(draw):
draw_gap()
turtle.pendown() if draw else turtle.penup()
turtle.forward(40)
draw_gap()
turtle.right(90)

# 定义一个函数,用于绘制一个数字,也就是一个田子的代码管
def draw_digit(number):
# 一开始是画田字中间的那一横
if number in [2, 3, 4, 5, 6, 8, 9]:
draw_line(True)
else:
draw_line(False)
# 画田字下右面的那一横
draw_line(True) if number in [0, 1, 3, 4, 5, 6, 7, 8, 9]else draw_line(False)
# 绘制最下面的一横
draw_line(True) if number in [0, 2, 3, 5, 6, 8, 9] else draw_line(False)
# 日左下角那一竖
draw_line(True) if number in [0, 2, 6, 8] else draw_line(False)
# 这个时候要调整海归的指向
turtle.left(90)
# 绘制日字左上角的那一横
draw_line(True) if number in [0,4,5,6,8,9] else draw_line(False)
draw_line(True) if number in [0,2,3,5,6,7,8,9] else draw_line(False)
draw_line(True) if number in [0,1,2,3,4,7,8,9] else draw_line(False)
turtle.right(180)
# 要记得先提笔,再改变海归的位置
turtle.penup()
turtle.forward(20)

# 定义一个函数,用于判断今年是闰年还是平年,再得出今天是今年的第几天
def get_day_count(year,month,day):
# 闰年
if (year%4==0 and year%10==0) or year%400==0:
month_day = [0, 31, 60, 91, 121, 152, 182, 213, 244, 247, 305, 335]
day_count=month_day[month-1]+day
return day_count
else:
month_day = [0, 31, 59, 90, 120, 151, 181, 212, 243, 273, 304, 334]
day_count=month_day[month-1]+day
return day_count

date=datetime.datetime.now().strftime("%Y-%m-%d")
list1=date.split('-')
year=eval(list1[0])
month=eval(list1[1])
day=eval(list1[2])
today=get_day_count(year, month, day)
result=(today-1)%7
list2=["星期日",'星期一','星期二','星期三','星期四','星期五','星期六']
week=list2[result]


# 定义一个函数,绘制最终的代码管
def draw_date(date):
turtle.pencolor('red')
for i in date:
if i=='-':
turtle.write('年',font=("Arial",36,'normal'))
# 海归每一次画完图像之后,就停留在文字的左下角,要让海归向前移动
turtle.fd(50)
elif i == '=':
turtle.write('月', font=("Arial", 36, "normal"))
turtle.pencolor("blue")
turtle.fd(50)
elif i == '+':
turtle.write('日', font=("Arial", 36, "normal"))
turtle.pencolor("yellow")
turtle.fd(50)
elif i == '*':
turtle.write('时', font=("Arial", 36, "normal"))
turtle.pencolor("purple")
turtle.fd(50)
elif i == '/':
turtle.write('分', font=("Arial", 36, "normal"))
turtle.pencolor("gold")
turtle.fd(50)
elif i == '$':
turtle.write('秒', font=("Arial", 36, "normal"))
else:
draw_digit(eval(i))
turtle.color("green")
turtle.penup()
turtle.forward(50)
turtle.pendown()
turtle.write(week,font=("Arial", 36, "normal"))

 

# 定义一个最终的主函数
def main():
# 设置一下画笔的速度
turtle.speed(200)
# 设置画布的大小
turtle.setup(1500,1500,200,200)
# 设置画笔的大小
turtle.pensize(5)
# 画笔最开始的位置在坐标原点,这里调整一下画笔的起始位置
turtle.penup()
turtle.goto(-650,0)
# turtle.forward(-650)
# 开始绘制代码管
draw_date(datetime.datetime.now().strftime("%Y-%m=%d+%H*%M/%S$"))
# 绘制完图像之后隐藏海归
turtle.hideturtle()
# 绘制完图像之后不选择关闭图像
turtle.done()

main()

标签:turtle,draw,else,数码管,line,month,绘制,day,七段
From: https://www.cnblogs.com/fnhlghsauSJJOJWLl/p/17849974.html

相关文章

  • 7段数码管绘制(小时,分,秒)
    7段数码管绘制(小时,分,秒)python代码:#七段数码管的绘制.pyfromturtleimport*#调用turtle、random、time库fromrandomimport*importtimedefdrawGap():penup()#提笔fd(5)defdrawLine(draw):drawGap()ifdraw:#除了七段数码管提笔,其......
  • 数码管问题
    importturtle,datetimedefdrawGap(): #绘制数码管间隔  turtle.penup()  turtle.fd(5)defdrawLine(draw): #绘制单段数码管  drawGap()  turtle.pendown()ifdrawelseturtle.penup()  turtle.fd(40)  drawGap()  turtle.right......
  • 7段数码管绘制
    7段数码管绘制运行代码importturtle,datetimedefdrawGap(): #绘制数码管间隔  turtle.penup()  turtle.fd(5)defdrawLine(draw): #绘制单段数码管  drawGap()  turtle.pendown()ifdrawelseturtle.penup()  turtle.fd(40)  draw......
  • 单片机+数码管
    利用8个数码管显示座位号+字母+学号后六位首先参考图参考程序可以了解到此程序实现了数码管显示OFF我们可以改的简单一点如下#include "reg51.h" //引入块unsigned char a_code[]{0x3f,0x71,0x00}; //共阴级数码管字段编码,我们选取重要的几个unsigned char a......
  • 7段数码管绘制
    importturtle,datetimedefdrawLine(draw): turtle.pendown()ifdrawelseturtle.penup()turtle.fd(40)turtle.right(90)defdrawDigit(digit): drawLine(True)ifdigitin[2,3,4,5,6,8,9]elsedrawLine(False)drawLine(True)ifdigitin......
  • 七段数码管绘制
    #22信计2向悦17号importturtle,datetime#3107defdrawGap():turtle.penup()turtle.fd(5)defdrawLine(draw): drawGap()turtle.pendown()ifdrawelseturtle.penup()turtle.fd(40)drawGap()turtle.right(90)defdrawDigit(d): drawLine(Tr......
  • 七段数码管绘制
    importturtle,datetimedefdrawLine(draw):turtle.pendown()ifdrawelseturtle.penup()turtle.fd(40)turtle.right(90)defdrawDigit(d):drawLine(True)ifdin[2,3,4,5,6,8,9]elsedrawLine(False)drawLine(True)ifdin[0,1,3,4,5,6,7,8,9......
  • 7段数码管绘制
    importturtle,datetimedefdrawGap():#绘制数码管间隔turtle.penup()turtle.fd(5)defdrawLine(draw):#绘制单段数码管drawGap()turtle.pendown()ifdrawelseturtle.penup()turtle.fd(40)drawGap()turtle.right(90)defdrawDigit(d):#......
  • 7段数码管绘制
    7段数码管绘描述:画出系统时间。具体包括:年,月,日,小时,分,秒。python代码:importturtle,datetimedefdrawGap():#绘制数码管间隔turtle.penup()turtle.fd(5)defdrawLine(draw):#绘制单段数码管drawGap()turtle.pendown()ifdrawelseturtle.penup......
  • 7段数码管绘制
    importturtle,datetimedefdrawGap():#绘制数码管间隔turtle.penup()turtle.fd(5)defdrawLine(draw):#绘制单段数码管drawGap()turtle.pendown()ifdrawelseturtle.penup()turtle.fd(40)drawGap()turtle.right(90)defdrawD......