python 画动态时钟
Python是一种流行的编程语言,可以轻松创建各种利用程序,包括动态时钟。本文将介绍怎样使用Python和其图形库来制作一个动态时钟。
# 导入必要的模块 import turtle import datetime # 设置画布 canvas = turtle.Screen() canvas.bgcolor("black") # 创建画笔 pen = turtle.Turtle() pen.hideturtle() # 计算时针、分针和秒针的末端坐标 def get_coordinates(length, angle): x = length * (0.5 - 0.5 * abs(angle) / 180) y = length * (0.5 * angle / 180) return(x, y) while True: # 获得当前时间 current_time = datetime.datetime.now() hour = current_time.hour % 12 minute = current_time.minute second = current_time.second # 绘制时针 hour_angle = hour * 30 + minute * 0.5 hour_length = 100 hour_width = 10 hour_coordinates = get_coordinates(hour_length, hour_angle) pen.goto(hour_coordinates[0], hour_coordinates[1]) pen.pensize(hour_width) pen.pencolor("white") pen.setheading(90 - hour_angle) pen.pendown() pen.forward(hour_length) # 绘制分针 minute_angle = minute * 6 minute_length = 150 minute_width = 5 minute_coordinates = get_coordinates(minute_length, minute_angle) pen.goto(minute_coordinates[0], minute_coordinates[1]) pen.pensize(minute_width) pen.pencolor("white") pen.setheading(90 - minute_angle) pen.pendown() pen.forward(minute_length) # 绘制秒针 second_angle = second * 6 second_length = 200 second_width = 2 second_coordinates = get_coordinates(second_length, second_angle) pen.goto(second_coordinates[0], second_coordinates[1]) pen.pensize(second_width) pen.pencolor("red") pen.setheading(90 - second_angle) pen.pendown() pen.forward(second_length) # 清除之前绘制的内容 pen.clear()
上述代码使用`turtle`模块创建画布和画笔,并在无穷循环中绘制时针、分针和秒针。`get_coordinates`函数根据长度和角度计算末端坐标,`current_time`获得当前时间,`hour_angle`、`minute_angle`和`second_angle`根据时间计算时针、分针和秒针的角度,`hour_length`、`minute_length`和`second_length`设置时针、分针和秒针的长度,`hour_width`、`minute_width`和`second_width`设置时针、分针和秒针的宽度,`pen.pencolor`和`pen.pensize`设置画笔色彩和大小。最后,通过`pen.clear()`方法清除之前绘制的内容,重新绘制动态时钟。
通过这段代码,我们可使用Python和`turtle`模块轻松制作一个动态时钟,并且可以根据需要进行修改和调剂以实现更加复杂的效果。
文章来源:丸子建站
文章标题:python 画动态时钟
https://www.wanzijz.com/view/57288.html