一、使用turtle模块显示时钟表盘
turtle是Python自带的一个图形库,可以用于在绘图窗口中绘制图形。我们可以使用turtle模块绘制一个时钟表盘,然后在表盘上显示时间。
import turtle
import time
# 绘制时钟表盘
def draw_clock(radius):
# 绘制表盘的外圆
turtle.pensize(7)
turtle.color("black")
turtle.penup()
turtle.goto(0, -radius)
turtle.pendown()
turtle.circle(radius)
# 绘制表盘上的刻度
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
for i in range(12):
turtle.forward(radius * 0.8)
turtle.pencolor("red")
turtle.pensize(5)
turtle.write(i+1, align="center", font=("Courier", 14, "bold"))
turtle.back(radius * 0.8)
turtle.right(30)
def main():
turtle.setup(width=800, height=800)
turtle.speed(0)
radius = 300
draw_clock(radius)
main()
以上代码中,我们使用turtle模块绘制了一个表盘的外圆和刻度线,其中的时间刻度用红色标注出来。可以通过修改半径和刻度线长度等参数来适应不同大小的表盘。
二、获取当前时间
使用Python内置的time模块可以获取当前时间,代码如下:
import time
def get_current_time():
return time.localtime()
current_time = get_current_time()
hour = current_time.tm_hour
minute = current_time.tm_min
second = current_time.tm_sec
以上代码中,我们调用time模块的localtime函数获取当前本地时间,并从中提取出小时、分钟和秒数。
三、在表盘上显示时间
有了时钟表盘和当前时间的数据,我们可以在表盘上显示时间了。
import turtle
import time
# 绘制时钟表盘
def draw_clock(radius):
# 绘制表盘的外圆
turtle.pensize(7)
turtle.color("black")
turtle.penup()
turtle.goto(0, -radius)
turtle.pendown()
turtle.circle(radius)
# 绘制表盘上的刻度
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
for i in range(12):
turtle.forward(radius * 0.8)
turtle.pencolor("red")
turtle.pensize(5)
turtle.write(i+1, align="center", font=("Courier", 14, "bold"))
turtle.back(radius * 0.8)
turtle.right(30)
# 获取当前时间
def get_current_time():
return time.localtime()
# 在表盘上显示时间
def show_time(hour, minute, second, radius):
# 显示时针
turtle.pensize(12)
turtle.color("black")
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.right(hour * 30 + minute * 0.5)
turtle.forward(radius * 0.6)
# 显示分针
turtle.pensize(8)
turtle.color("blue")
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.right(minute * 6)
turtle.forward(radius * 0.8)
# 显示秒针
turtle.pensize(3)
turtle.color("red")
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.right(second * 6)
turtle.forward(radius * 0.9)
def main():
turtle.setup(width=800, height=800)
turtle.speed(0)
radius = 300
draw_clock(radius)
while True:
turtle.clear()
current_time = get_current_time()
hour = current_time.tm_hour
minute = current_time.tm_min
second = current_time.tm_sec
show_time(hour, minute, second, radius)
turtle.update()
time.sleep(1)
main()
以上代码中,我们使用show_time函数将时针、分针和秒针分别绘制在表盘上。其中,时针每小时旋转30度,每分钟旋转0.5度;分针每分钟旋转6度;秒针每秒旋转6度。
最后,在主函数中使用while循环来不断更新表盘上的时间,调用turtle.update()函数将图形更新到屏幕上,每一秒钟暂停一次,以达到实时显示时间的效果。
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/237931.html
微信扫一扫
支付宝扫一扫