淘先锋技术网

首页 1 2 3 4 5 6 7

今天我将和大家分享一种非常有趣的Python程序,它可以通过画表盘的方式呈现数据,而且还非常简单易懂。

我们先来看看代码:

import turtle
import time
# 定义外圆函数
def drawCircle(r, color):
turtle.up()
turtle.goto(0, -r)
turtle.down()
turtle.begin_fill()
turtle.color(color)
turtle.circle(r)
turtle.end_fill()
# 定义刻度函数
def drawLines(n):
turtle.pensize(7)
for i in range(n):
turtle.up()
turtle.goto(0,0)
turtle.setheading(30*i)
turtle.fd(90)
turtle.down()
turtle.fd(10)
turtle.up()
# 定义指针函数
def hourHand(h, m):
turtle.up()
turtle.goto(0,0)
turtle.setheading(30*h+0.5*m)
turtle.pensize(7)
turtle.pencolor("black")
turtle.down()
turtle.fd(60)
def minuteHand(m):
turtle.up()
turtle.goto(0,0)
turtle.setheading(6*m)
turtle.pensize(5)
turtle.pencolor("red")
turtle.down()
turtle.fd(80)
def secondHand(s):
turtle.up()
turtle.goto(0,0)
turtle.setheading(6*s)
turtle.pensize(2)
turtle.pencolor("green")
turtle.down()
turtle.fd(90)
# 设置窗口
turtle.setup(650, 350, 200, 200)
turtle.title("Analogue Clock")
# 循环运行
while True:
turtle.clear()
drawCircle(120, '#f6facf')
drawCircle(100, '#dbfcc3')
drawLines(12)
nowTime = time.localtime()
hourHand(nowTime.tm_hour,nowTime.tm_min)
minuteHand(nowTime.tm_min)
secondHand(nowTime.tm_sec)
time.sleep(1)
turtle.update()
turtle.done()

代码的主要部分是通过turtle库来实现画图的功能。

首先我们定义了一个画外圆的函数drawCircle,它可以在画布上画出一个半径为r、颜色为color的圆,并填充颜色。

然后我们定义了画刻度的函数drawLines,它通过turtle.up()和turtle.down()的组合将海龟移动到指定位置并画出一条长度为10的直线,再通过turtle.setheading()函数将海龟的方向调整到下一个刻度。

接着我们定义了三个指针函数hourHand、minuteHand和secondHand,它们分别根据当前的小时、分钟和秒数以不同的颜色和粗细画出三个指针。

最后我们通过turtle.setup()函数设置画布的大小和位置,并通过一个无限循环来实现时钟的连续运转。

如果你对Python画图有兴趣,不妨试一试这个有趣的程序吧。