抖音上比较有趣的罗盘时钟,今天用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")
效果截图:
文章来源:https://www.toymoban.com/news/detail-518476.html
这个时钟有一个神奇的功效,当你心烦时,你就盯着它看,一会你就会感到有一股平和的力量充满了你的大脑。试试吧文章来源地址https://www.toymoban.com/news/detail-518476.html
到了这里,关于利用Python实现一个科幻酷炫的罗盘时钟~网友:求求你,带带弟弟!的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!