7段数码管倒计时,因为受turtle画笔速度限制,显示效果可能不如直接打印数字

7段数码管倒计时,因为受turtle画笔速度限制,显示效果可能不如直接打印数字,代码如下:

import turtle as t
import time

def drawgap(ft):
    t.penup()
    t.fd(0.11*ft)

def drawline(e,ft):
    drawgap(ft)
    t.pendown() if e else t.penup()
    t.fd(0.78*ft)
    drawgap(ft)
    t.right(90)

def drawdigit(digit,ft):
    drawline(True,ft) if eval(digit) in [2,3,4,5,6,8,9] else drawline(False,ft)
    drawline(True, ft) if eval(digit) in [0,1,3,4,5,6,7,8,9] else drawline(False, ft)
    drawline(True, ft) if eval(digit) in [0,2,3,5,6,8,9] else drawline(False, ft)
    drawline(True, ft) if eval(digit) in [0,2,6,8] else drawline(False, ft)
    t.left(90)
    drawline(True, ft) if eval(digit) in [0,4,5,6,8,9] else drawline(False, ft)
    drawline(True, ft) if eval(digit) in [0,2,3,5,6,7,8,9] else drawline(False, ft)
    drawline(True, ft) if eval(digit) in [0,1,2,3,4,7,8,9] else drawline(False, ft)
    t.right(180)
    t.fd(-ft)

def drawempty(ft):
    t.pendown()
    for j in range(4):
        t.fd(ft)
        t.right(90)
    t.left(90)
    for k in range(3):
        t.fd(ft)
        t.right(90)
    t.right(180)
    t.fd(-ft)

ft=100

t.pencolor(‘red‘)
t.pensize(0.12*ft)
t.setup(1000,450)

countnum=3
numstr=([‘‘]*countnum)
for i in range(countnum):
    numstr[i]=str(countnum-i)
dur=([‘‘]*countnum)
i=-1
t.speed(99*99)
#校正数字显示位置
t.penup()
t.fd(-0.5*ft)

#开始计时
for each in numstr:
    starte=time.perf_counter()
    drawdigit(each,ft)
    t.clear()
    i+=1
    dur[i]=time.perf_counter()-starte
    time.sleep(1-dur[i])

#校正直接打印数字的位置
t.right(90)
t.fd(ft)
t.left(90)
j=-1
for each in numstr:
    start=time.perf_counter()
    j+=1
    t.write(countnum-j,font=(‘Arial‘,ft,‘normal‘))
    time.sleep(0.7)
    t.clear()
    dur=time.perf_counter()-start
    time.sleep(1-dur)

#打印计时结束的提示信息
t.penup()
t.fd(-ft*2)
t.pencolor(‘green‘)
for i in range(5):
    t.clear()
    time.sleep(0.3)
    t.write(‘倒计时结束‘,font=(‘SimHei‘,int(ft*0.8),‘italic‘))
    time.sleep(0.4)
t.done()

结果为动画形式.

原文地址:https://www.cnblogs.com/zhangziyan/p/9192773.html

时间: 2024-10-09 06:05:07

7段数码管倒计时,因为受turtle画笔速度限制,显示效果可能不如直接打印数字的相关文章

AC620教程 第十五节 8位7段数码管驱动设计与验证

本章导读 电子系统中常用的显示设备有数码管.LCD液晶以及VGA显示器等.其中数码管又可分为段式显示(7段.米字型等)以及点阵显示(8*8.16*16等),LCD液晶的应用可以分为字符式液晶(1602.12864等)以及真彩液晶屏,VGA显示器一般是现在的电脑显示器.芯航线开发板对以上三种设备均提供了硬件接口. 本章将实现FPGA驱动数码管动态显示并提取出实现的电路结构,从电路结构入手编写代码,仿真对设计进行验证.最终板级调试时使用In system sources and probes edi

10-8位7段数码管驱动实验——小梅哥FPGA设计思想与验证方法视频教程配套文档

芯航线--普利斯队长精心奉献 ? 实验目的: 1.实现FPGA驱动数码管动态显示: 2.使用In system sources and probes editor工具,输入需要显示在数码管上的的数据,数码管显示对应数值. 实验平台:芯航线FPGA核心板.数码管_VGA_PS2模块 实验原理: ????电子设计系统中常用的显示设备有数码管.LCD液晶以及VGA显示器等.其中数码管又可分为段式显示(7段.米字型等)以及点阵显示(8*8.16*16等),LCD液晶的应用可以分为字符式液晶(1602.1

7段数码管显示驱动代码

数码管显示进行简单的介绍,数码管显示原理在数电中已经给出了比较详细的介绍,我就不赘述了,因为我们用的是至芯的开发板,其上的数码管显示模块采用的是共阳极的数码管,为低电平有效,0-F的显示码依次为:    数码管的输入有3个位选和8个段选给出,位选信号sel来控制哪个数码管先亮,段选信号seg来控制数码管显示什么,位选本来应该是有6个的但是为了节约资源,采用了3-8译码器将6根线减少到3根,节约了FPGA的引脚资源. 因为人眼有一个视觉载留,所以60HZ来扫描的时候,数码管会让人眼觉得是同时点亮,

时间进行3段区分 执行倒计时 end1 end2 开始执行回调

<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title></title> </head> <body> <script src="jquery.js"></script> <script> // 倒计时插件 (function() {

573锁存器驱动8段数码管

#include <reg51.h> #define SEG P2 sbit P1_0 = P1^0; sbit P1_1 = P1^1; sbit P1_2 = P1^2; sbit P1_3 = P1^3; sbit P1_4 = P1^4; unsigned char code tab[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x3c,0x07,0x7f,0x37}; //共阴极 void delay(int x); void main() { while(1)

数码管倒计时

//全部数码管计时 #include<reg52.h> /**声明使能IO口 */ sbit ADDR0=P1^0; sbit ADDR1=P1^1; sbit ADDR2=P1^2; sbit ADDR3=P1^3; sbit ENLED=P1^4; /*声明数组存放数码管真值表 */ unsigned char code LedChar[]={ 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8, 0x80,0x90,0x88,0x83,0xc6,0xa1,0x

台铁嘉义段钢轨断裂9辆列车通行受影响

中新网4月19日电 据台湾“中央社”报道,台铁19日上午7时45分因嘉义.南靖间东正线一处钢轨断裂,无法行车,后于8时46分恢复正常行车,影响9列车.约1790人. 台铁表示,嘉义.南靖间东正线305K+200处钢轨断裂,上午7时45分该地点无法行车,于7时45分起该区间封锁加固后,8时20分起该地点改时速60公里慢行.8时46分起恢复正常行车,影响9列车.约1790人. (原标题:台铁嘉义段钢轨断裂1790人受影响 已恢复正常行 http://baozoumanhua.com/users/22

[51单片机] 以从0开始做4位8段共阴数码管3461AS驱动谈细节决定高质量DIY

目录 1)问题产生 2)失败尝试 3)最终方案 4)使用方法 5)知识共享 1)问题产生 在上一篇“以PWM控制直流电机为例建一个简单的51工程框架”中已向大家介绍了一个封装好的8位8段数码管的驱动(如下图中FUNC文件夹下led8.c文件). 但是该驱动电路是要有一定的硬件基础的(如下图):如2片74HC573.而我这里只有几个4位8段共阴数码管又没有74HC573,所以就得寻求用51直接驱动的方案了! 2)失败尝试 失败操作:直接在相应的引脚间加5伏电压来测试该数码管是否正常 结果:烧坏了2

Python入门基础:七段数码管绘制

1.在学习Python的过程中,运用所学的一些基础知识,进行一些简单的编程,可以收获很多乐趣.在生活中,LED灯无处不在,荧幕显示的广告词,给我们呈现出动态的视觉效果.下面,则以最简单的显示日期为例,绘制七段数码管. 2.何为七段数码管 数码管是一种价格便宜.使用简单的电子器件,广泛应用于价格较低的电子类产品中,其中,七段数码管最为常用.七段数码管(Seven-segment Indicator)由七段数码管拼接而成,每段有亮或不亮的两种情况,且包括一个小数点的位置. 3.在绘制数码管的显示动态