|
发表于 2025-3-10 11:55:10
|
显示全部楼层
下面是指针式钟表代码,它利用 pyglet 库绘制一个简单的钟表。
- import pyglet
- from datetime import datetime
- import math
- # 设置窗口大小
- window = pyglet.window.Window(width=400, height=400, caption="指针式钟表")
- # 定义指针的颜色和长度
- HOUR_HAND_LENGTH = 80
- MINUTE_HAND_LENGTH = 120
- SECOND_HAND_LENGTH = 140
- HOUR_HAND_COLOR = (255, 0, 0)
- MINUTE_HAND_COLOR = (0, 255, 0)
- SECOND_HAND_COLOR = (0, 0, 255)
- # 定义钟表中心点
- CENTER_X = window.width // 2
- CENTER_Y = window.height // 2
- def draw_hand(angle, length, width, color):
- """绘制指针"""
- end_x = CENTER_X + length * math.sin(math.radians(angle))
- end_y = CENTER_Y + length * math.cos(math.radians(angle))
- pyglet.shapes.Line(CENTER_X, CENTER_Y, end_x, end_y, width, color).draw()
- @window.event
- def on_draw():
- window.clear()
- # 获取当前时间
- now = datetime.now()
- hour = now.hour % 12
- minute = now.minute
- second = now.second
- # 计算指针角度
- hour_angle = (hour + minute / 60) * 30 # 每小时30度
- minute_angle = (minute + second / 60) * 6 # 每分钟6度
- second_angle = second * 6 # 每秒6度
- # 绘制指针
- draw_hand(hour_angle, HOUR_HAND_LENGTH, width=6, color=HOUR_HAND_COLOR) # 时针
- draw_hand(minute_angle, MINUTE_HAND_LENGTH, width=4, color=MINUTE_HAND_COLOR) # 分针
- draw_hand(second_angle, SECOND_HAND_LENGTH, width=2, color=SECOND_HAND_COLOR) # 秒针
- def update(dt):
- pass
- # 每秒更新一次窗口
- pyglet.clock.schedule_interval(update, 1)
- # 运行程序
- pyglet.app.run()
复制代码
这个代码创建一个窗体并绘制时钟的三个指针:时针、分针和秒针。每秒钟时钟更新,显示的时间是系统当前时间。确保你的系统上安装了 pyglet 库来运行这个程序。
以上回复来自 FishC AI 小助理,如未能正确解答您的问题,请继续追问。 |
|