python小程序之七段数码管的绘制

这篇具有很好参考价值的文章主要介绍了python小程序之七段数码管的绘制。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

今天我们学习了七段数码管的绘制,通过一个程序学习了数字用七段数码的绘制。首先我们看下图的绘制,我们先理解下各个数字由几步线条组成。

python小程序之七段数码管的绘制

 然后回到我们的程序,先给大家看看我们的程序图,因为小编录屏很模糊,但是运行的时候它是一笔一笔的绘制出来的,结果是出来这样。我们先学习下绘制的基本步骤。

 

python小程序之七段数码管的绘制

一.基本思路:

    步骤一:首先绘制单个数字对应的数码管

    步骤二:获得一串数字,绘制对应的数码管

    步骤三:获得当前系统时间,绘制对应的数码管

二.概念补充:

       1.random()函数

          1)描述:random()方法返回随机生成的一个实数,但是它的值只能在[0,1)范围内。

          2)语法:

                 import random

                 random.random()

          3)输出结果:

                 

          4)注意事项:

                     Random()是不能直接访问的,需要导入random模块。

   2.time.strtime()函数

                 1)描述:time.strftime()函数收到以时间元组,并返回以可读字符串表示的当地时间。

                 2)语法:time.strftime(format[,t])

                 3)参数:

                        format—格式字符串

                        t---可选的参数t

                 4)返回值:返回以可读字符串表示的当地时间。三.制作代码:

#七段数码管的绘制.py
from turtle import *  #调用turtle、random、time库
from random import *
import time

def drawGap():
    penup()  #提笔
    fd(5)
def drawLine(draw):
    drawGap()
    if draw:     #除了七段数码管提笔,其余停笔
        pendown()
    else:
        penup()
    fd(40)     #向前40
    drawGap()
    right(90)   #向右旋转90
def drawDight(digit):
    pencolor(random(),random(),random())#颜色随机
    drawLine(True) if digit in [2, 3, 4, 5, 6, 8, 9] else drawLine(False)#第一段那些数字会经过
    pencolor(random(), random(), random())
    drawLine(True) if digit in [0, 1, 3, 4, 5, 6, 7, 8, 9] else drawLine(False)
    pencolor(random(), random(), random())
    drawLine(True) if digit in [0, 2, 3, 5, 6, 8, 9] else drawLine(False)
    pencolor(random(), random(), random())
    drawLine(True) if digit in [0, 2, 6, 8] else drawLine(False)
    pencolor(random(), random(), random())
    left(90)#向左旋转90度
    drawLine(True) if digit in [0, 4, 5, 6, 8, 9] else drawLine(False)
    pencolor(random(), random(), random())
    drawLine(True) if digit in [0, 2, 3, 5, 6, 7, 8, 9] else drawLine(False)
    pencolor(random(), random(), random())
    drawLine(True) if digit in [0, 1, 2, 3, 4, 7, 8, 9] else drawLine(False)
    pencolor(random(), random(), random())
    left(180)
    penup()  # 为绘制后续数字确定位置
    fd(20)  # 为绘制后续数字确定位置
def drawDate(date):

    for i in date:

        if i == '-': #设定年、月、日的单位

            write('年', font=("Arial", 28, "normal"))
            pencolor("orange")
            fd(40)
        elif i == '=':
            write('月', font=("Arial", 28, "normal"))
            pencolor("pink")
            fd(40)
        elif i == '+':

            write('日', font=("Arial", 28, "normal"))
            pencolor("yellow")

        else:
            drawDight(eval(i))
def main():

        setup(800, 350, 200, 200) #设置画布大小
        penup()
        fd(-300)
        pensize(5)


        drawDate(time.strftime('%Y-%m=%d+',time.localtime()))  # 将模板设置为"小时-分钟=秒+"
        hideturtle()
        done()
main()

import turtle as t       #导入turtle模块,简化为t

import random as r       #导入随机模块,简化为r

import time

"""定义绘制线段"""

def drawLine(draw):      #定义一个函数drawLine,形参draw

        t.pendown() if draw else t.penup()  #画笔落下,做好准备

        t.pencolor(r.random(),r.random(),r.random()) #画笔颜色随机生成

        t.fd(80)

        t.right(90)
python小程序之七段数码管的绘制

 

"""定义绘制0-9"""

def drawDigit(i):      #定义一个函数drawDigit,形参i

        #画第1段:

 drawLine(True) if i in [2,3,4,5,6,8,9] else drawLine(False) 

        #画第2段:

drawLine(True) if i in [0,1,3,4,5,6,8,9] else drawLine(False)

        #画第3段

drawLine(True) if i in [0,2,3,5,6,8] else drawLine(False)

         #画第四段

drawLine(True) if i in [0,2,6,8] else drawLine(False)

t.left(90)         #每画一段之后就要转90°,画到第四段是一个路口,需要向左转90°使其继续直行。

         #画第五段

drawLine(True) if i in [0,4,5,6,8,9] else drawLine(False)

        #画第六段

drawLine(True) if i in [0,2,3,5,7,8,9] else drawLine(False)

        #画第七段

drawLine(True) if i in [0,1,2,3,4,7,8,9] else drawLine(False)

     t.left(180)          #画笔改为反方向旋转180度。

    t.penup()

    t.fd(20)             #为绘制第二个数字确定位置,向右移动20px

"""定义绘制日期的所有数字函数"""

def drawDate(date):

    for i in date:

        drawDigit(eval(i))

"""定义主函数"""

def main():

    t.setup(900,900)

    t.pensize(5)

    t.penup()

    t.fd(-400)

    drawDate(time.strftime("%Y%m%d"))

    t.hideturtle()

    t.done()

main() #函数的调用
 文章来源地址https://www.toymoban.com/news/detail-432445.html

到了这里,关于python小程序之七段数码管的绘制的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • FPGA设计开发(基础课题):七段数码管设计

    一、设计目的 FPGA驱动七段数码管实现十六进制计数显示。 二、设计原理 七段数码管分共阳极与共阴极两种。共阳极数码管其工作特点是,当笔段电极接低电平,公共阳极接高电平时,相应笔段可以发光。共阴极数码管则与之相反,它是将发光二极管的阴极短接后作为公共阴

    2024年02月07日
    浏览(52)
  • 6、七段数码管显示译码器设计与应用

    掌握七数码管显示原理 掌握七段码显示译码设计 进一步熟悉 Xilinx ISE 环境及 SWORD 实验平台 任务 1:原理图设计实现显示译码 MyMC14495 模块 任务 2:用 MyMC14495 模块实现数码管显示 1.创建工程并绘制原理图 建立工程 MyMC14495,创建原理图文件 MyMC14495,按原理图绘制 2.原理图仿真

    2024年02月07日
    浏览(39)
  • 仿真软件proteus构建七段数码管显示数字0-9实验

        七段数码管显示原理研究在前一篇博客中已经阐述过,就是利用7个数码管构建一个“8”字形,然后利用数字的形状特点,依次点亮某一些段,就可以显示数字了。     七段数码管显示数字还是二极管发光原理的利用。     这里依旧采用proteus构建硬件工程,单片机类型

    2024年02月11日
    浏览(47)
  • 【verilog】用七段数码管显示二进制编码的十进制数

    用七段数码管显示0~9,输入为四个信号,这四位二进制数表示十进制的0~9 图1 逻辑电路与七段显示器 图2 真值表 根据卡诺图,得出a~g的逻辑表达式: 硬件描述语言: 图4 代码编译成功 图5 电路图 图6 仿真波形 表1 端口管脚分配表 端口 使用模块信号 对应FPGA管脚 功能说明

    2023年04月25日
    浏览(56)
  • 【FPGA】Verilog:实现十六进制七段数码管显示 | 7-Segment Display

    写在前面: 本章主要内容为理解七点数码管显示的概念,并使用 Verilog 实现。生成输入信号后通过仿真确认各门的动作,通过 FPGA 检查在 Verilog 中实现的电路的操作。 七段数码管是利用多重输出功能的非常有用的元件。该元件用于字符化,如十进制、十六进制数等。适当配

    2024年02月02日
    浏览(47)
  • 计算机组成原理3个实验-logisim实现“七段数码管”、“有限状态机控制的8*8位乘法器”、“单周期MIPS CPU设计”。

    目录 标题1.首先是七段数码管   标题二:有限状态机控制的8*8位乘法器 标题三:单周期MIPS CPU设计 1看一下实验要求:    2.接下来就是详细设计: 1. 组合逻辑设计        由于7段数码管由7个发光的数码管构成,因为我们想用二进制将0-9这几个数字表示出来。所以他需要

    2024年01月17日
    浏览(48)
  • 数码管显示原理:共阴极和共阳极的区别,静态显示程序。

    LED发光原理是PN结光电二极管将电能转化为光能的结果。当半导体芯片两端加正反向电压时,当电子从n区域注入p区域时,它们与p区的空穴结合并释放能量,这些能量以光子的形式发射出来,从而实现了光的发光。 为了使LED点亮,需要在电路中建立一个电流通路,以使电流通

    2024年02月04日
    浏览(37)
  • 基于STM32单片机的温度报警器(数码管)(Proteus仿真+程序)

            本设计由STM32F103单片机最小系统+DS18B20温度传感器+数码管显示模块+声光报警模块+独立按键组成。 1、主控制器是STM32F103单片机 2、DS18B20温度传感器测量温度 3、数码管显示温度值,精度0.1摄氏度 4、三个按键可设置温度上限、下限报警值,温度超过上限、或者温度低

    2024年02月07日
    浏览(57)
  • Arduino:实现四位LED共阴极数码管显示——从认识、连接、程序到实现功能

    (1)一位八段共阴极数码管        在认识四位共阴极数码管之前我先介绍一下一位八段共阴极数码管。如左图所示为以为数码管的实物图,其中它共有10个引脚,且上下各五个。 小数点位于右下时为数码管正面 ,在四位共阴极数码管中也是如此,在连接组装时尤为重要。

    2024年02月02日
    浏览(48)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包