利用Python实现一个科幻酷炫的罗盘时钟~网友:求求你,带带弟弟!

抖音上比较有趣的罗盘时钟,今天用turtle来画一下,基本功能实现了,拿来练习一下turtle,感觉还可以吧

turtle的安装

sudo apt-get install python3-tk

罗盘时钟

思路就是,绘制三个圆,在圆周填充字符,充当仪表,以当前时间为起点,然后定时重新绘制图形

所以本例实现看着有点卡顿的感觉。

运行环境:Python3.6 + Pygame

import pygame, sys, math
from datetime import datetime


def print_text(font, x, y, text, angle, color=(255, 255, 255)):
    """粉丝朋友+我vx:paisen999获取系统性学习Python的学习资料"""
    img_text = font.render(text, True, color)
    img_text = pygame.transform.rotate(img_text, angle)
    screen.blit(img_text, (x, y))


def cycle_text(cirText, bins, today_xx, cirRadius, font):
    """
    定义一个输出循环文本的函数
    cirText: 环形循环文本,如日期和时间的中文
    bins: 圆需要分为多少等分,如秒需要分成60等分
    today_xx: 接收当前时间(月日周时分秒)的具体数值
    cirRadius: 指定环形文本的半径
    font: 指定使用的字体
    """
    for i in range(1, len(cirText) + 1):
        # c_angle: 旋转一次的角度
        c_angle = math.radians(360 / bins)*(today_xx - i)
        # t_angle: 环上每个独立文本的角度
        t_angle = 0 - (360 / bins) * (today_xx - i)
        # add_x: 环上每个独立文本的横坐标距离pos_x的距离
        add_x = math.cos(c_angle)*cirRadius
        # add_x: 环上每个独立文本的横坐标距离pos_x的距离
        add_y = math.sin(c_angle)*cirRadius
        # print_text(): 调用上面定义的函数,输出换上每个文本
        print_text(font, pos_x + add_x, pos_y + add_y, str(cirText[i - 1]), angle=t_angle)


# 初始化一个界面
pygame.init()
# 屏幕大小
screen = pygame.display.set_mode((800, 700))
# 标题
pygame.display.set_caption("Python Clock")

效果截图:

 

这个时钟有一个神奇的功效,当你心烦时,你就盯着它看,一会你就会感到有一股平和的力量充满了你的大脑。试试吧

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值