User manual

61
9 Analogna ura na zaslonu
............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
............................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................
Digitalni prikaz časa, ki smo ga danes vajeni pri računalnikih, je prišel v modo šele v 70. letih
prejšnjega stoletja. Pred tem so čas več stoletij prikazovali analogno s kazalci na številčnici.
Bum digitalnih ur se je v zadnjih letih ponovno malce zmanjšal, saj je bilo ugotovljeno, da je
možno analogne ure hitreje odčitati, v slabih vremenskih pogojih ali na velikih razdaljah, kot
je na primer na železniških postajah, pa je odčitavanje tudi bolj jasno. Človeško oko grafiko
hitreje zajame kot številke ali črke. Slika analogne ure se vtisne v kratkoročni spomin, tako
da je možno čas pravilno odčitati, tudi če smo sliko videli nepopolno ali megleno. Če pa
nenatačno vidimo digitalno uro, iz tega ne moremo zanesljivo sklepati o prikazanem času.
Slika 9.1: Analogna ura, programirana s PyGame.
Ta program ni namenjen samo prikazu programiranja ure, temveč služi tudi ponazoritvi
osnovnih načel za prikazovanje analognih prikazov, ki jih ni možno uporabljati samo za ure,
temveč tudi za prikaz najrazličnejših izmerjenih vrednosti ali statističnih podatkov.
Okoli središča okrogle številčnice tečejo trije kazalci, ki prikazujejo ure, minute in sekunde.
Zgoraj v naslovu okna teče tudi digitalni prikaz časa.
Program uhr01.py na zaslonu prikazuje analogno uro, ki jo vidite na sliki:
import pygame, time
from pygame.locals import *
from math import sin, cos, radians
pygame.init()
ROT = (255, 0, 0); WEISS = (255, 255, 255); SCHWARZ = (0, 0, 0)
FELD = pygame.display.set_mode((400, 400))
FELD.fill(WEISS)
MX = 200; MY = 200; MP = ((MX, MY))
def punkt(A, W):
w1 = radians(W * 6 – 90); x1 = int(MX + A * cos(w1))
y1 = int(MY + A * sin(w1)); return((x1, y1))
for i in range(60):
pygame.draw.circle(FELD, SCHWARZ, punkt(190, i), 2)
for i in range(12):
pygame.draw.circle(FELD, SCHWARZ, punkt(190, i * 5), 4)