Python 指针动态时钟绘制代码
以下是一个简单的 Python 代码,用于绘制指针会动的时钟:
import turtle
import datetime
# 创建指针
def create_hand(name, length):
hand = turtle.Turtle()
hand.speed(0)
hand.shape('triangle')
hand.shapesize(stretch_len=length)
hand.penup()
turtle.register_shape(name, ((0,0), (0.2*length,0.05*length), (length,0), (0.2*length,-0.05*length)))
hand.shape(name)
return hand
# 设置画布
def setup_clock(radius):
turtle.setup(width=1000, height=1000)
turtle.bgcolor('black')
clock = turtle.Turtle()
clock.speed(0)
clock.penup()
clock.goto(0, -radius)
clock.pendown()
clock.pensize(7)
for i in range(60):
clock.forward(radius*0.9)
if i % 5 == 0:
clock.penup()
clock.forward(10)
clock.pendown()
clock.forward(20)
clock.penup()
clock.backward(radius*0.93)
else:
clock.penup()
clock.forward(5)
clock.pendown()
clock.forward(10)
clock.penup()
clock.backward(radius*0.95)
clock.right(6)
return clock
# 获取时间
def get_time():
d = datetime.datetime.now()
hour = d.hour
minute = d.minute
second = d.second
return hour, minute, second
# 绘制时钟
def draw_clock(hour, minute, second, h_hand, m_hand, s_hand):
h_angle = (hour/12) * 360 + (minute/60) * 30
m_angle = (minute/60) * 360
s_angle = (second/60) * 360
h_hand.setheading(h_angle)
m_hand.setheading(m_angle)
s_hand.setheading(s_angle)
turtle.update()
# 主函数
def main():
radius = 300
clock = setup_clock(radius)
h_hand = create_hand('hour_hand', 0.5)
m_hand = create_hand('minute_hand', 0.7)
s_hand = create_hand('second_hand', 0.9)
while True:
hour, minute, second = get_time()
draw_clock(hour, minute, second, h_hand, m_hand, s_hand)
if __name__ == '__main__':
main()
该代码使用 Turtle 模块在 Python 中创建了一个指针会动的时钟。它首先创建了三个指针:时针、分针和秒针,并使用 register_shape() 函数来定义指针的形状。然后,它设置了画布并在画布上绘制了时钟的标记。最后,它定义了一个 draw_clock() 函数,该函数将指针的角度设置为当前时间,并在画布上绘制时钟。主函数不断循环,以便时钟可以持续更新。
原文地址: https://www.cveoy.top/t/topic/nyqm 著作权归作者所有。请勿转载和采集!