Python turtle库使用 及七段数码管绘制

turtle库介绍

Turtle库是Python语言中一个很流行的绘制图像的函数库,想象一个小乌龟,在一个横轴为x、纵轴为y的坐标系原点,(0,0)位置开始,它根据一组函数指令的控制,在这个平面坐标系中移动,从而在它爬行的路径上绘制了图形。

1、Turtle中的turtle.setup()函数用于启动一个图形窗口,它有四个参数

turtle.setup(width, height, startx, starty),如:turtle.setup(800, 350, 0, 0)

分别是:启动窗口的宽度高度表示窗口启动时,窗口左上角在屏幕中的坐标位置。 

我们所使用的显示屏幕也是一个坐标系,该坐标系以左上角为原点,向左和向下分别是x轴和y轴。蟒蛇程序代码启动一个800像素宽、350像素高的窗,该窗口的左上角是屏幕的左上角。 

Python turtle库使用 及七段数码管绘制_第1张图片(startx,starty)表示画的初始点,(0,0)表示位于电脑屏幕中心

2、Turtle中的turtle.pensize()函数表示小乌龟运动轨迹的宽度。 

3、Turtle中的turtle.pencolor()函数表示小乌龟运动轨迹的颜色。

它包含一个输入参数,这里我们把它设为蓝色:blue,其他颜色单词也可以使用。Turtle采用RGB方式来定义颜色,如果希望获得和图片中颜色一致的小蛇,请输入turtle.pencolor(“#3B9909”) 

4、Turtle中的turtle.seth(angle)函数表示小乌龟启动时运动的方向。它包含一个输入参数,是角度值。

其中,0表示向东,90度向北,180度向西,270度向南;负值表示相反方向。

5、turtle.circle(radius)函数让小乌龟沿着一个圆形爬行

参数radius描述圆形轨迹半径的位置,这个半径在小乌龟运行的左侧,radius远位置处。如果 radius为负值,则半径在小乌龟运行的右侧, 参数angle表示小乌龟沿着圆形爬行的弧度值。 

6、turtle.fd()函数也可以用turtle.forward()表示乌龟向前直线爬行移动表示小乌龟向前直线爬行移动,它有一个参数表示爬行的距离 。

7、详细参数描述

Python turtle库使用 及七段数码管绘制_第2张图片

Python turtle库使用 及七段数码管绘制_第3张图片

Python turtle库使用 及七段数码管绘制_第4张图片

七段数码管绘制

import turtle, time


def drawline(draw):
    drawGap()
    turtle.pendown() if draw else turtle.penup()
    turtle.fd(40)
    drawGap()
    turtle.right(90)

def drawGap():
    turtle.penup()
    turtle.fd(5) 

def drawDigit(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] else drawline(False)
    drawline(True) if digit in [0, 2, 6, 8] else drawline(False)
    turtle.left(90)
    drawline(True) if digit in [0, 4, 5, 6, 8, 9] else drawline(False)
    drawline(True) if digit in [0, 2, 3, 5, 6, 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)
    turtle.penup()
    turtle.fd(20)


def drawDate(date):
    turtle.pencolor('red')
    for i in date:
        if i == '-':
            turtle.write('年', font=('Arial', 20, 'normal'))
            turtle.pencolor('green')
            turtle.fd(40)
        elif i == '=':
            turtle.write('月', font=('Arial', 20, 'normal'))
            turtle.pencolor('blue')
            turtle.fd(40)
        elif i == '+':
            turtle.write('日', font=('Arial', 20, 'normal'))
        else:
            drawDigit(eval(i))


def main():
    turtle.setup(800, 350, 200, 200)
    turtle.penup()
    turtle.pensize(5)
    turtle.speed(10)
    turtle.fd(-300)
    turtle.pendown()
    drawDate(time.strftime('%Y-%m=%d+', time.gmtime()))
    turtle.hideturtle()
    turtle.done()
main()

Python turtle库使用 及七段数码管绘制_第5张图片

你可能感兴趣的:(python)