python电子时钟表盘
时间: 2023-11-20 16:56:39 浏览: 29
以下是Python电子时钟表盘的代码实现:
```python
import turtle
import time
# 绘制表盘刻度
def drawLine(length, angle):
turtle.penup()
turtle.fd(length)
turtle.pendown()
turtle.fd(length/10)
turtle.penup()
turtle.backward(length*1.1)
turtle.right(angle)
# 绘制表盘数字
def drawNum(num):
turtle.penup()
turtle.fd(200)
turtle.right(90)
drawLine(40, 0)
turtle.write(num, font=('Arial', 18, 'normal'))
turtle.left(90)
turtle.backward(200)
# 绘制表盘
def drawClock(radius):
turtle.pensize(7)
for i in range(60):
if i % 5 == 0:
drawNum(i//5)
else:
drawLine(20, 0)
turtle.right(6)
turtle.penup()
turtle.goto(0, -radius)
turtle.pendown()
turtle.circle(radius)
# 绘制指针
def drawPointer(length, width):
turtle.pensize(width)
turtle.fd(length)
turtle.backward(length)
# 获取当前时间并更新指针位置
def getRealtime():
turtle.penup()
turtle.goto(0, 0)
turtle.pendown()
turtle.clear()
turtle.pencolor('black')
turtle.write(time.strftime('%H:%M:%S'), font=('Arial', 18, 'normal'))
second = time.localtime().tm_sec
minute = time.localtime().tm_min
hour = time.localtime().tm_hour
turtle.pensize(5)
turtle.pencolor('red')
turtle.seth(90)
turtle.right(hour*30+minute*0.5)
drawPointer(60, 5)
turtle.seth(90)
turtle.right(minute*6)
drawPointer(100, 3)
turtle.seth(90)
turtle.right(second*6)
drawPointer(120, 1)
turtle.penup()
turtle.home()
# 初始化
def init():
turtle.setup(800, 600)
turtle.pensize(7)
turtle.speed(0)
turtle.hideturtle()
# 主函数
def main():
init()
while True:
getRealtime()
time.sleep(1)
# 运行主函数
if __name__ == '__main__':
main()
```