There really is no hope of making this code even half-way decent without spending the time to rewrite them all properly. Don't want to do any of that
129 lines
2.7 KiB
Python
Executable File
129 lines
2.7 KiB
Python
Executable File
# Import der Module
|
|
import turtle
|
|
import time
|
|
import datetime
|
|
|
|
# Setup der einzelnen Turtle instanzen.
|
|
turtle.tracer(0)
|
|
sekundenzeiger = turtle.Turtle()
|
|
minutenzeiger = turtle.Turtle()
|
|
stundenzeiger = turtle.Turtle()
|
|
uhr = turtle.Turtle()
|
|
sekundenzeiger.color("red")
|
|
minutenzeiger.color("blue")
|
|
stundenzeiger.width(2)
|
|
|
|
|
|
# Definition des Ziffernblattes
|
|
def clock_bg():
|
|
uhr.pd()
|
|
uhr.dot(10)
|
|
uhr.pu()
|
|
uhr.lt(90)
|
|
uhr.fd(230)
|
|
uhr.rt(90)
|
|
uhr.pd()
|
|
for i in range(12):
|
|
uhr.rt(90)
|
|
uhr.fd(20)
|
|
uhr.bk(20)
|
|
uhr.lt(90)
|
|
for i in range(60):
|
|
uhr.fd(2)
|
|
uhr.rt(0.5)
|
|
uhr.pu()
|
|
|
|
|
|
# Funktion des Sekundenzeigers
|
|
def sekzeiger():
|
|
sekundenzeiger.pu()
|
|
sekundenzeiger.home()
|
|
sekundenzeiger.pd()
|
|
sekunden = datetime.datetime.now().second
|
|
sekundenzeiger.setheading((sekunden * 6) * (-1))
|
|
sekundenzeiger.lt(90)
|
|
sekundenzeiger.bk(40)
|
|
sekundenzeiger.fd(220)
|
|
|
|
|
|
# Funktion des Minutenzeigers
|
|
def minzeiger():
|
|
minutenzeiger.pu()
|
|
minutenzeiger.home()
|
|
minutenzeiger.pd()
|
|
minuten = datetime.datetime.now().minute
|
|
minutenzeiger.lt((minuten * 6) * (-1))
|
|
minutenzeiger.lt(90)
|
|
minutenzeiger.bk(30)
|
|
minutenzeiger.fd(215)
|
|
|
|
|
|
# Funktion des Stundenzeigers
|
|
def stzeiger():
|
|
stundenzeiger.pu()
|
|
stundenzeiger.home()
|
|
stundenzeiger.pd()
|
|
mins = datetime.datetime.now().minute
|
|
stunden = datetime.datetime.now().hour
|
|
if stunden >= 12:
|
|
stunden -= 12
|
|
stundenzeiger.lt((stunden * 30) * (-1))
|
|
stundenzeiger.rt(mins * 0.5)
|
|
stundenzeiger.lt(90)
|
|
stundenzeiger.bk(15)
|
|
stundenzeiger.fd(135)
|
|
else:
|
|
stundenzeiger.lt((stunden * 30) * (-1))
|
|
stundenzeiger.rt(mins * 0.5)
|
|
stundenzeiger.lt(90)
|
|
stundenzeiger.bk(15)
|
|
stundenzeiger.fd(135)
|
|
|
|
|
|
# Ganze Uhr
|
|
def clock():
|
|
sekundenzeiger.clear()
|
|
minutenzeiger.clear()
|
|
stundenzeiger.clear()
|
|
sekundenzeiger.ht()
|
|
minutenzeiger.ht()
|
|
stundenzeiger.ht()
|
|
uhr.ht()
|
|
uhr.home()
|
|
clock_bg()
|
|
sekzeiger()
|
|
minzeiger()
|
|
stzeiger()
|
|
turtle.update()
|
|
|
|
|
|
# Stoppen der Uhr
|
|
def stop():
|
|
global run
|
|
run = 0
|
|
|
|
|
|
# Hauptschleife
|
|
def settings():
|
|
print("Welcome!")
|
|
global run
|
|
time.sleep(2)
|
|
run = 0
|
|
turtle.onkeypress(stop, "Escape")
|
|
turtle.listen()
|
|
run = 1
|
|
while run == 1:
|
|
clock()
|
|
turtle.title("Clock")
|
|
else:
|
|
print("stopped, click to exit")
|
|
turtle.exitonclick()
|
|
print("process ended")
|
|
|
|
|
|
# Startzeit einblenden
|
|
print(time.strftime("%H:%M:%S"))
|
|
|
|
# Ausführen des Programms
|
|
settings()
|