猫史档案馆


【Python作品分享】myclock【作品秀】

用户:幽默的草灵灵qpPi幽默的草灵灵qpPi查看:0 回复:2 评论:0 创建时间:2020-01-29T15:13:58


【作品展示】

center_image

 

【作品介绍】

说明:这是一款用编程做的时钟,时钟上的时间是电脑上的时间,如果修改了电脑上的时间,这个时钟的时间也会跟着改变。

操作:运行前请注意:

1.本作品需用到第三方库,需要下载离线版海龟编辑器。(下载网址:https://python.codemao.cn/)

2.下载好后,在窗口的左上角登录你的编程猫账号。(没有登录成功请截图回复)

3.登录成功后,按下窗口上方的库管理,然后点击搜索框,搜索arcade库和dataclasses库并安装。

4.安装完成后,需要保存。

5.保存后,就可以运行了。

如果觉得这个作品很好的话,就记得点赞哦!

 

【作品源代码】

from arcade import *

# 设置窗体宽和高
SCREEN_WIDTH = 600
SCREEN_HEIGHT = 600
# 设置窗体标题
SCREEN_TITLE = 'My Clock'
CENTER_X = SCREEN_WIDTH // 2
CENTER_Y = SCREEN_HEIGHT // 2


class Pointer():
    def __init__(self, name, value, lenghth, color, line_width):
        self.name = name
        self.value = value
        self.lenghth = lenghth
        self.color = color
        self.line_width = line_width

    def draw(self):
        if self.name == "hour":
            angle = 360 * self.value / 12
        else:
            angle = 360 * self.value / 60
        x, y = CENTER_X + self.lenghth * \
            math.sin(math.radians(angle)), CENTER_Y + \
            self.lenghth * math.cos(math.radians(angle))
        draw_line(CENTER_X, CENTER_Y, x, y, self.color, self.line_width)


class MyClock(arcade.Window):
    def __init__(self, width, height, title):
        super().__init__(width, height, title)
        # 窗体初始化
        self.setup()

    def setup(self):
        # 设置背景颜色
        set_background_color(color.WHITE)

    def on_draw(self):
        start_render()
        self.mydraw()

    def mydraw(self):
        # 表盘
        r = 200
        draw_circle_outline(CENTER_X, CENTER_Y, r, color.SKY_BLUE, 20)
        # 数字
        per = 360 / 12
        for i in range(1, 13):
            angle = per * i
            x, y = CENTER_X + (r - 20) * math.sin(math.radians(angle)
                                                  ), CENTER_Y + (r - 20) * math.cos(math.radians(angle))
            draw_text(str(i), x, y, color.BLACK, 20, font_name=(
                "simhei", "PingFang"), anchor_x="center", anchor_y="center")
        # 指针
        import datetime
        d = datetime.datetime.now()
        h, m, s = d.hour, d.minute, d.second
        hour = Pointer("hour", h, 70, color.GREEN, 15)  # 时针
        hour.draw()
        minute = Pointer("minute", m, 120, color.BLUE, 10)  # 分针
        minute.draw()
        second = Pointer("second", s, 150, color.RED, 5)  # 秒针
        second.draw()
        # 轴心
        draw_circle_filled(CENTER_X, CENTER_Y, 10, color.BLACK)
        # 年月日星期
        year, month, day, week = d.year, d.month, d.day, d.weekday()
        weeks = ["一", "二", "三", "四", "五", "六", "天"]
        date = f"{year}年{month}月{day}日 星期{weeks[week]}"
        draw_text(date, CENTER_X, CENTER_Y - 250, color.BLACK, 20,
                  font_name=("simhei"), anchor_x="center", anchor_y="center")


if __name__ == '__main__':
    game = MyClock(SCREEN_WIDTH, SCREEN_HEIGHT, SCREEN_TITLE)
    run()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 1下一页
幽默的草灵灵qpPi幽默的草灵灵qpPi

补充:记得还要导入datetime库哦!

点赞0


评论


QBZ_QBZ_

可以啊

点赞0


评论