#!/usr/bin/env python2.3
# -*- coding: utf-8 -*-

#######################################
# простой пример часов
#######################################


import Tkinter, time

from math import sin, cos, pi

a = 100     # ширина часов в пунктах
H = 50      # длина часовой стрелки в пунктах
M = 95      # длина минутной стрелки в пунктах
S = 80      # длина секундной стрелки в пунктах
TICS_r = 85 # длина засечек на циферблате
TICS_R = 95 #


idH = -10; idM = -10; idS = -10;

# рисование засечек на циферблате
def plot_tics(parent):
    for i in range(12):
        parent.create_line(
            a+int(TICS_r*sin(pi*i/6)),
            a-int(TICS_r*cos(pi*i/6)),
            a+int(TICS_R*sin(pi*i/6)),
            a-int(TICS_R*cos(pi*i/6)))

# рисование часовой стрелки
def plot_hour(parent, h, m):
    ang = pi*(120*h+m)/720.
    return parent.create_line(
        a,
        a,
        a+int(H*sin(ang)),
        a-int(H*cos(ang)))

# рисование минутной стрелки
def plot_minute(parent, m):
    return parent.create_line(
        a,
        a,
        a+int(M*sin((pi*m)/30)),
        a-int(M*cos((pi*m)/30)),
        fill="red")

# рисование секундной стрелки
def plot_second(parent, s):
    return parent.create_line(
        a,
        a,
        a+int(S*sin((pi*s)/30)),
        a-int(S*cos((pi*s)/30)),
        fill="brown")

# получение системного времени
def get_time():
    stime = time.localtime()
    return (stime[3] % 12, stime[4], stime[5])

# установить нарисовать время на наших часах
def set_time(clock):
    global idH, idM, idS
    h, m, s = get_time()
    idH = plot_hour(clock, h, m)
    idM = plot_minute(clock, m)
    idS = plot_second(clock, s)

# рисование системного времени
def waiter(clock):
    if idM > 0 and idH > 0 and idS > 0:
        clock.delete(idM)
        clock.delete(idH)
        clock.delete(idS)
    set_time(clock)
    clock.after(1000, waiter, clock)

# создание часов
root = Tkinter.Tk()
clock = Tkinter.Canvas(\
    root, \
    width=2*a,\
    height=2*a)
clock.pack(side=Tkinter.TOP)
Tkinter.Button(\
    root,
    text=unicode('Пока', 'koi8-r'),\
    command=root.destroy).pack(side=Tkinter.LEFT)




# теперь можно запускать наши часы
plot_tics(clock)  # рисуем штрихи на циферблате
waiter(clock)     # запускаем основной цикл
root.mainloop()   # запускаем саму программу