iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python绘制时钟的示例代码
  • 582
分享到

Python绘制时钟的示例代码

2024-04-02 19:04:59 582人浏览 薄情痞子

Python 官方文档:入门教程 => 点击学习

摘要

目录导入需要的包设置变量写数字绘制时针完整代码导入需要的包设置变量 from datetime import datetime from pygame.locals import *

导入需要的包设置变量

from datetime import datetime
from pygame.locals import *
import sys, math, pygame


def print_text(font, x, y, text, color=(255, 255, 255)):
    img_text = font.render(text, True, color)
    screen.blit(img_text, (x, y))


def wrap_angle(angle):
    return angle % 360


pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("在线时钟")

# 设置字体
font1 = pygame.font.SysFont("方正粗黑宋简体", 24)
orange = 220, 180, 0
white = 255, 255, 255
yellow = 255, 255, 0
pink = 255, 100, 100

pos_x = 300
pos_y = 250
radius = 250
angle = 360

这里绘制一个600*500的屏幕,设置圆心位置及其半径。根据时间的不同,计算弧度,通过三角函数计算出对应的坐标,从圆心的位置绘制出时针的线条。

写数字

通过循环1到12,将数字写在对应的位置上,-10 和对应的字体微调使其更加对正

    for n in range(1, 13):
        angle = math.radians(n * (360 / 12) - 90)
        x = math.cos(angle) * (radius - 20) - 10
        y = math.sin(angle) * (radius - 20) - 10
        print_text(font1, pos_x + x, pos_y + y, str(n))

绘制时针

这里通过时间计算出对应的角度,然后从圆心到指定位置画时针。

    hour_angle = wrap_angle(hours * (360/12) - 90) + wrap_angle(minutes * (360/60) - 90) / 60
    hour_angle = math.radians(hour_angle)
    hour_x = math.cos(hour_angle) * (radius - 80)
    hour_y = math.sin(hour_angle) * (radius - 80)
    target = (pos_x + hour_x, pos_y + hour_y)
    pygame.draw.line(screen, pink, (pos_x, pos_y), target, 25)

完整代码

from datetime import datetime
from pygame.locals import *
import sys, math, pygame


def print_text(font, x, y, text, color=(255, 255, 255)):
    img_text = font.render(text, True, color)
    screen.blit(img_text, (x, y))


def wrap_angle(angle):
    return angle % 360


pygame.init()
screen = pygame.display.set_mode((600, 500))
pygame.display.set_caption("在线时钟")

# 设置字体
font1 = pygame.font.SysFont("方正粗黑宋简体", 24)
orange = 220, 180, 0
white = 255, 255, 255
yellow = 255, 255, 0
pink = 255, 100, 100

pos_x = 300
pos_y = 250
radius = 250
angle = 360

while True:
    for event in pygame.event.get():
        if event.type == QUIT:
            pygame.quit()
            sys.exit()

    keys = pygame.key.get_pressed()
    if keys[K_ESCAPE]:
        pygame.quit()
        sys.exit()

    screen.fill((154, 205, 255))
    pygame.draw.circle(screen, white, (pos_x, pos_y), radius, 6)

    for n in range(1, 13):
        angle = math.radians(n * (360 / 12) - 90)
        x = math.cos(angle) * (radius - 20) - 10
        y = math.sin(angle) * (radius - 20) - 10
        print_text(font1, pos_x + x, pos_y + y, str(n))

    today = datetime.today()
    hours = today.hour % 12
    minutes = today.minute
    seconds = today.second

    hour_angle = wrap_angle(hours * (360/12) - 90) + wrap_angle(minutes * (360/60) - 90) / 60
    hour_angle = math.radians(hour_angle)
    hour_x = math.cos(hour_angle) * (radius - 80)
    hour_y = math.sin(hour_angle) * (radius - 80)
    target = (pos_x + hour_x, pos_y + hour_y)
    pygame.draw.line(screen, pink, (pos_x, pos_y), target, 25)

    min_angle = wrap_angle(minutes * (360/60) - 90)
    min_angle = math.radians(min_angle)
    min_x = math.cos(min_angle) * (radius - 60)
    min_y = math.sin(min_angle) * (radius - 60)
    target = (pos_x + min_x, pos_y + min_y)
    pygame.draw.line(screen, orange, (pos_x, pos_y), target, 12)

    sec_angle = wrap_angle(seconds * (360/60) - 90)
    sec_angle = math.radians(sec_angle)
    sec_x = math.cos(sec_angle) * (radius - 40)
    sec_y = math.sin(sec_angle) * (radius - 40)
    target = (pos_x + sec_x, pos_y + sec_y)
    pygame.draw.line(screen, yellow, (pos_x, pos_y), target, 6)

    pygame.draw.circle(screen, white, (pos_x, pos_y), 20)
    print_text(font1, 0, 0, str(hours) + ":" + str(minutes) + ":" + str(seconds))

    pygame.display.update()

以上就是python绘制时钟的示例代码的详细内容,更多关于Python绘制时钟的资料请关注编程网其它相关文章!

--结束END--

本文标题: Python绘制时钟的示例代码

本文链接: https://www.lsjlt.com/news/138787.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python绘制时钟的示例代码
    目录导入需要的包设置变量写数字绘制时针完整代码导入需要的包设置变量 from datetime import datetime from pygame.locals import *...
    99+
    2024-04-02
  • Matlab绘制有趣的罗盘时钟的示例代码
    目录绘制效果完整代码一期趣味编程哈,如何使用MATLAB绘制罗盘时钟: 绘制效果 完整代码 function compassClock % @author : slandarer...
    99+
    2023-01-28
    Matlab绘制罗盘时钟 Matlab绘制时钟 Matlab时钟
  • Python绘制灯笼的示例代码
    目录一、效果展示二、代码展示三、拓展一年一度的元宵节刚刚过去,由于时间关系,在元宵节当天晚上11点多才完成本文灯笼的绘制。这两天又在忙着别的事情,所以现在才跟大家分享。 一、效果展示...
    99+
    2024-04-02
  • Python实现绘制凸包的示例代码
    目录ConvexHullQG三维情况ConvexHull属性ConvexHull ConvexHull是spatial中的一个类,主要功能是找到一组点的边缘,并做一个凸包。其必要的初...
    99+
    2023-05-18
    Python绘制凸包 Python 凸包
  • Python+Turtle绘制幸运草的示例代码
    目录一、效果展示二、代码详解1.导入库2.播放音乐3.定义画四叶草的函数4.调用函数绘制四叶草5.设置写文字的函数幸运草又名四叶草,一般指四叶的苜蓿、或车轴草。 在十万株苜蓿草中,你...
    99+
    2024-04-02
  • Python利用Turtle绘制Technoblade的示例代码
    在刚过去不久的6月30日那天,国外一位在YouTube拥有上千万粉丝的我的世界游戏主播Technoblade因癌症与世长辞,年仅23岁,他并没有离开我们,只是用另外一种方式活在了这个...
    99+
    2023-01-06
    Python Turtle绘制Technoblade Python 绘制Technoblade Python Turtle
  • Python+Turtle绘制蜘蛛侠的示例代码
    目录一、效果展示二、代码详解1.导入库2.播放音乐3.定义画蜘蛛侠上半身的函数4.定义画左手和右手的函数5.定义画蜘蛛的函数6.调用函数绘制图形蜘蛛侠(Spider-Man)即彼得&...
    99+
    2024-04-02
  • python绘制字符画视频的示例代码
    目录 读取视频转为字符动画已经11月了,不知道还有没有人看华强买瓜。。。要把华强卖瓜做成字符视频,总共分为三步 读取视频 把每一帧转为字符画 把字...
    99+
    2024-04-02
  • 通过Python绘制中国结的示例代码
    目录1 中国结的组成部分2 设计中国结对象3 绘制结体4 绘制耳翼5 绘制挂耳和流苏6 完整代码,一键运行1 中国结的组成部分 中国结是一种手工编织工艺品,它身上所显示的情致与智慧正...
    99+
    2024-04-02
  • Python+turtle绘制对称图形的示例代码
    目录1.图12.图23.图34.图45.图56.图6最近有个朋友,想要我帮忙用python画几个图,在画的过程中觉得有些图还挺有意思的,分享给大家。 1.图1 第一个图是由三角形组成...
    99+
    2024-04-02
  • Qt实现电子时钟的示例代码
    目录一、项目介绍二、项目基本配置三、UI界面设计四、主程序实现4.1 添加新文件4.2 digiclock.h头文件4.3 digiclock.cpp源文件4.4 main.cpp源...
    99+
    2024-04-02
  • python绘制浅色范围曲线的示例代码
    借鉴:python绘制lost(损失)曲线 加 方差范围 直接上效果图:  上代码: import re import seaborn as sns import m...
    99+
    2024-04-02
  • Python+Matplotlib绘制双y轴图像的示例代码
    目录双Y轴图简介实现思路实现代码样式一样式二双Y轴图简介  双Y轴图顾名思义就是在一个图里有两个Y轴。这种图形主要用来展示两个因变量和一个自变量的关系并且两个因变量的数值单...
    99+
    2024-04-02
  • OpenCV 绘制同心圆的示例代码
    目录功能函数测试代码最近在学习OpenCV,本文主要介绍了OpenCV 绘制同心圆的示例代码,分享给大家,具体如下: 功能函数 // 绘制同心圆 void DrawConcent...
    99+
    2024-04-02
  • 基于Python制作三款起床闹钟的示例代码
    目录导语一、Turtle绘制时钟1)代码展示2)效果展示二、Turtle实现模拟时钟1)代码展示2)效果展示三、简易时钟1)代码展示2)效果展示导语 叮叮叮,我们要按时长大 我是你们...
    99+
    2024-04-02
  • Python实现动态条形图绘制的示例代码
    目录动态条形图变动态柱状图指定排序方式限制条目数设置固定条目固定数值轴,使其不发生动态变化设置图像帧数,默认 10 帧设置帧率,单位时间默认为 500ms设置每帧增加的标签时间,默认...
    99+
    2024-04-02
  • Python+Tkinter绘制一个数字时钟
    Tkinter 实现上述功能并不复杂,只要使用 Tkinter 的相关组件和一些简单的逻辑处理即可,在编写这个案例的过程中大家要做到温故而知新。 程序代码如下所示: from tki...
    99+
    2024-04-02
  • C#绘制时钟的方法
    本文实例为大家分享了使用C#写一个时钟,供大家参考,具体内容如下 时钟是这样的 一共使用四个控件即可: WinFrom窗体应用程序代码: using SpeechLib; us...
    99+
    2024-04-02
  • 利用OpenLayer绘制扇形的示例代码
    目录创建openlayers地图绘制扇形方法我在网上看了很多说是绘制扇形的方法,但是我用的时候都不是很好玩,所以说呢,我自己整理了一下,符合了我想要的效果,尽管我能力有限,还是决定分...
    99+
    2024-04-02
  • 基于Cesium绘制栅栏的示例代码
    目录最终效果创建 dynamicWallMaterialProperty.js 文件网上的资料要不收费,要不代码不全,很多跟绘制墙体有关的案例要不缺放法要不干嘛的,我自己根据网上的方...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作