python:七段电子管绘制

先放代码:

#七段电子管绘制.py
import turtle as t
import random as r                  #导入随机库
import time

'''
t.setup(1000,400)
t.pensize(5)
t.colormode(1)                      #设置颜色模式为0-1

for i in range(4):
    t.pencolor(r.random(),r.random(),r.random())
    t.fd(100)
    t.right(90)

t.left(90)                          #将画笔向左90度

for i in range(3):
    t.pencolor(r.random(),r.random(),r.random())
    t.fd(100)
    t.right(90)

'''
#定义画线函数:
def drawLine(draw):
    t.pendown() if draw else t.penup()
    t.pencolor(r.random(),r.random(),r.random())
    t.fd(80)
    t.right(90)

#定义绘制0-9数字函数
def drawDigit(i):
    drawLine(True) if i in [2,3,4,5,6,8,9] else drawLine(False)         #画第1段的数值
    drawLine(True) if i in [0,1,3,4,5,6,7,8,9] else drawLine(False)     #画第2段的数值
    drawLine(True) if i in [0,2,3,5,6,8] else drawLine(False)           #画第3段的数值
    drawLine(True) if i in [0,2,6,8] else drawLine(False)               #画第4段的数值
    t.left(90)
    drawLine(True) if i in [0,4,5,6,8,9] else drawLine(False)           #画第5段的数值
    drawLine(True) if i in [0,2,3,5,6,7,8,9] else drawLine(False)       #画第6段的数值
    drawLine(True) if i in [0,1,2,3,4,7,8,9] else drawLine(False)       #画第7段的数值

    t.left(180)         #画笔改为反方向旋转180度
    t.penup()           #为绘制第二个数字确定位置,向右移动20px
    t.fd(20)

#定义绘制日期函数:
def drawDate(date):
    for i in date:
        drawDigit(eval(i))

#定义main函数:
def main():
    t.setup(1000,350)
    t.penup()
    t.fd(-400)
    t.pensize(5)
    drawDate(time.strftime('%Y%m%d'))
    t.hideturtle()
    t.down()
#函数调用
main()

每个数字都由七段直线组成,只需要确定每个数字需要用到哪段直线,就可以通过循环画出想要的数字

效果如下:

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,我可以帮你介绍一下如何用 Python 绘制七段数码管字母。 首先,我们需要定义每个数字或字母在七段数码管中的布局,可以定义一个字典来存储它们: ```python digit_layouts = { '0': [1, 1, 1, 0, 1, 1, 1], '1': [0, 0, 1, 0, 0, 1, 0], '2': [1, 0, 1, 1, 1, 0, 1], '3': [1, 0, 1, 1, 0, 1, 1], '4': [0, 1, 1, 1, 0, 1, 0], '5': [1, 1, 0, 1, 0, 1, 1], '6': [1, 1, 0, 1, 1, 1, 1], '7': [1, 0, 1, 0, 0, 1, 0], '8': [1, 1, 1, 1, 1, 1, 1], '9': [1, 1, 1, 1, 0, 1, 1], 'A': [1, 1, 1, 0, 1, 1, 0], 'B': [0, 0, 0, 1, 1, 1, 1], 'C': [1, 1, 0, 0, 1, 0, 1], 'D': [0, 0, 1, 1, 1, 1, 0], 'E': [1, 1, 0, 0, 1, 1, 1], 'F': [1, 1, 0, 0, 0, 1, 1], } ``` 然后,我们可以定义一个函数来绘制七段数码管: ```python import turtle # 定义画笔 pen = turtle.Turtle() pen.speed(0) pen.hideturtle() # 定义绘制一个线段的函数 def draw_line(length, is_vertical): pen.right(90 if is_vertical else 0) pen.forward(length) pen.left(180 if is_vertical else 90) pen.forward(length) pen.right(180 if is_vertical else 90) pen.forward(length) pen.left(180 if is_vertical else 90) pen.forward(length) pen.right(90 if is_vertical else 0) # 定义绘制七段数码管的函数 def draw_digit_layout(layout, size): # 绘制第一条线段 if layout[0]: draw_line(size, False) pen.penup() pen.forward(size) pen.pendown() # 绘制第二条线段 if layout[1]: draw_line(size, False) pen.penup() pen.backward(size) pen.right(90) pen.forward(size) pen.left(90) pen.pendown() # 绘制第三条线段 if layout[2]: draw_line(size, True) pen.penup() pen.backward(size) pen.left(90) pen.forward(size * 2) pen.right(90) pen.pendown() # 绘制第四条线段 if layout[3]: draw_line(size, True) pen.penup() pen.backward(size) pen.right(90) pen.forward(size) pen.left(90) pen.pendown() # 绘制第五条线段 if layout[4]: draw_line(size, False) pen.penup() pen.forward(size) pen.pendown() # 绘制第六条线段 if layout[5]: draw_line(size, True) pen.penup() pen.backward(size) pen.left(90) pen.forward(size * 2) pen.right(90) pen.pendown() # 绘制第七条线段 if layout[6]: draw_line(size, True) pen.penup() pen.backward(size) pen.right(90) pen.forward(size) pen.left(90) # 定义绘制一个数字或字母的函数 def draw_digit(digit, size): layout = digit_layouts[digit] draw_digit_layout(layout, size) # 测试绘制一个数字或字母 draw_digit('A', 50) ``` 这样,你就可以用 Python 绘制七段数码管字母了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值