Python起步之利用Turtle进行时钟绘制
2017-07-30 17:54
801 查看
利用Turtle进行时钟绘制,并能够进行实时的计时:
# turtleClock.py
from turtle import *
from datetime import *
def Skip(step):
penup()
fd(step)
pendown()
def mkHand(name,length):
#注册Turtle形状,建立表针Turtle
reset()#擦除上一次的绘制,重新绘制表针的位置
Skip(-length * 0.1)
begin_poly() #开始绘制
fd(length * 1.1)
end_poly()
handForm = get_poly()
register_shape(name,handForm)
def Init():
global secHand,minHand,hurHand,printer
mode('logo')#重置Turtle指向北
mkHand('secHand',125)
mkHand('minHand',120)
mkHand('hurHand',90)
secHand = Turtle()
secHand.shape('secHand')
minHand = Turtle()
minHand.shape('minHand')
hurHand = Turtle()
hurHand.shape('hurHand')
for hand in secHand,minHand,hurHand:
hand.shapesize(1,1,3)
hand.speed(0)
#建立输出文字
printer = Turtle()
printer.hideturtle()
printer.penup()
def SetupClock(radius):
reset()
pensize(7)
for i in range(60):
Skip(radius)
if i % 5 ==0:
forward(20)
Skip(-radius - 20)
else:
dot(5)
Skip(-radius)
right(6)
def Week(t):
week = ["星期一", "星期二", "星期三",
"星期四", "星期五", "星期六", "星期日"]
return week[t.weekday()]
def Date(t):
y = t.year
m = t.month
d = t.day
return '%s年%d月%d日' %(y,m,d)
def Time(t):
s = t.second
m = t.minute
h = t.hour
return '%s:%s:%s'%(h,m,s)
def Tick():
#绘制表针的动态显示
t = datetime.today()
second = t.second + t.microsecond*0.000001
minute = t.minute + second/60.0
hour = t.hour + minute/60.0
secHand.setheading(6*second)
minHand.setheading(6*minute)
hurHand.setheading(6*hour)
tracer(False)
printer.forward(-65)
printer.write(Week(t),align ='center',font = ('Courier',14,'bold'))
printer.back(40)
printer.write(Date(t),align = 'center',font = ('Courier',14,'bold'))
# printer.back(45)
# printer.write(Time(t),align = 'center',font = ('Courier',14,'bold'))
printer.home()
tracer(True)
ontimer(Tick,100)#100ms后继续调用tick
def main():
tracer(False)
Init()
SetupClock(160)
tracer(True)
Tick()
mainloop()
if __name__ == '__main__':
main()
运行结果图:
# turtleClock.py
from turtle import *
from datetime import *
def Skip(step):
penup()
fd(step)
pendown()
def mkHand(name,length):
#注册Turtle形状,建立表针Turtle
reset()#擦除上一次的绘制,重新绘制表针的位置
Skip(-length * 0.1)
begin_poly() #开始绘制
fd(length * 1.1)
end_poly()
handForm = get_poly()
register_shape(name,handForm)
def Init():
global secHand,minHand,hurHand,printer
mode('logo')#重置Turtle指向北
mkHand('secHand',125)
mkHand('minHand',120)
mkHand('hurHand',90)
secHand = Turtle()
secHand.shape('secHand')
minHand = Turtle()
minHand.shape('minHand')
hurHand = Turtle()
hurHand.shape('hurHand')
for hand in secHand,minHand,hurHand:
hand.shapesize(1,1,3)
hand.speed(0)
#建立输出文字
printer = Turtle()
printer.hideturtle()
printer.penup()
def SetupClock(radius):
reset()
pensize(7)
for i in range(60):
Skip(radius)
if i % 5 ==0:
forward(20)
Skip(-radius - 20)
else:
dot(5)
Skip(-radius)
right(6)
def Week(t):
week = ["星期一", "星期二", "星期三",
"星期四", "星期五", "星期六", "星期日"]
return week[t.weekday()]
def Date(t):
y = t.year
m = t.month
d = t.day
return '%s年%d月%d日' %(y,m,d)
def Time(t):
s = t.second
m = t.minute
h = t.hour
return '%s:%s:%s'%(h,m,s)
def Tick():
#绘制表针的动态显示
t = datetime.today()
second = t.second + t.microsecond*0.000001
minute = t.minute + second/60.0
hour = t.hour + minute/60.0
secHand.setheading(6*second)
minHand.setheading(6*minute)
hurHand.setheading(6*hour)
tracer(False)
printer.forward(-65)
printer.write(Week(t),align ='center',font = ('Courier',14,'bold'))
printer.back(40)
printer.write(Date(t),align = 'center',font = ('Courier',14,'bold'))
# printer.back(45)
# printer.write(Time(t),align = 'center',font = ('Courier',14,'bold'))
printer.home()
tracer(True)
ontimer(Tick,100)#100ms后继续调用tick
def main():
tracer(False)
Init()
SetupClock(160)
tracer(True)
Tick()
mainloop()
if __name__ == '__main__':
main()
运行结果图:
相关文章推荐
- [置顶] 利用python进行折线图,直方图和饼图的绘制
- Python进阶(三十八)-数据可视化の利用matplotlib 进行折线图,直方图和饼图的绘制
- Python中Turtle绘图函数-绘制时钟程序
- Python利用turtle绘制五角星
- 利用python进行折线图,直方图和饼图的绘制
- 利用Python的turtle库绘制玫瑰
- python使用turtle库绘制时钟
- python使用turtle库绘制时钟
- Python利用Turtle绘制一颗小树
- Python利用turtle库绘制彩虹代码示例
- Python 利用matplotlib绘制热力图 correlation heatmap X,Y 坐标轴字体重叠显示问题,将字体进行旋转
- 利用python中的turtle库绘制图形
- 利用Python进行数据分析(7) pandas基础: Series和DataFrame的简单介绍 一、pandas 是什么 pandas 是基于 NumPy 的一个 Python 数据分析包,主
- 利用Python进行数据分析(五)之pandas入门
- python利用requests库进行接口测试的方法详解
- 思维导图-利用Python进行数据分析
- 关于利用python进行验证码识别的一些想法
- 使用PyQtGraph进行Python数据可视化:绘制精美折线图(以 上证指数走势为例) 推荐
- Python使用Turtle模块绘制五星红旗代码示例
- 利用Python进行数据分析(12) pandas基础: 数据合并