ydwb 发表于 2025-3-10 11:54:54

指针式钟表代码

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()

FishC 发表于 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 小助理,如未能正确解答您的问题,请继续追问。
页: [1]
查看完整版本: 指针式钟表代码