下面是指针式钟表代码,它利用 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 小助理,如未能正确解答您的问题,请继续追问。 |