python用turtle绘制动态钟表
时间: 2023-07-12 19:32:52 浏览: 130
下面是一个使用 Python turtle 绘制动态钟表的示例代码:
```python
import turtle
import datetime
# 画刻度线
def draw_scale(t, length, num):
# 移动到起点
t.penup()
t.right(90)
t.forward(10)
t.right(180)
t.pendown()
# 绘制刻度线
for i in range(num):
t.forward(length)
t.penup()
t.backward(length)
t.left(360 / num)
t.pendown()
# 画指针
def draw_hand(t, length, thickness, angle):
t.penup()
t.right(90)
t.forward(10)
t.right(180 - angle)
t.pensize(thickness)
t.pendown()
t.forward(length)
# 获取当前时间
now = datetime.datetime.now()
# 创建 Turtle 对象
t = turtle.Turtle()
t.speed(0)
# 设置画布和画笔属性
turtle.setup(400, 400)
turtle.bgcolor("white")
t.pensize(3)
t.pencolor("black")
# 画钟表框
t.penup()
t.goto(0, 0)
t.pendown()
t.circle(100)
# 画刻度线和数字
draw_scale(t, 80, 12)
# 画时针、分针和秒针
hour = now.hour % 12
minute = now.minute
second = now.second
hour_angle = (hour + minute / 60) * 30
minute_angle = minute * 6
second_angle = second * 6
draw_hand(t, 50, 5, hour_angle)
draw_hand(t, 70, 3, minute_angle)
draw_hand(t, 90, 1, second_angle)
# 隐藏 Turtle 对象
t.hideturtle()
# 保持窗口不关闭
turtle.mainloop()
```
这个例子中,我们首先定义了两个函数 `draw_scale()` 和 `draw_hand()`,用于画刻度线和指针。`draw_scale()` 函数接受三个参数:Turtle 对象、刻度线长度和刻度线数量。`draw_hand()` 函数接受四个参数:Turtle 对象、指针长度、指针粗细和指针角度。
然后我们获取当前时间,创建一个 Turtle 对象,并设置画布和画笔属性。接着画钟表框、刻度线和数字,并计算出当前时针、分针和秒针的角度。最后画出时针、分针和秒针,并隐藏 Turtle 对象。
你可以运行这个代码,查看绘制出来的动态钟表效果。
阅读全文