Analogové hodiny

V čísle 35 magazímu Flop jste v rubrice Hlavolamy uvedli zadání problému analogových hodin. Přestože nejsem žádný hodinář, podařilo se mi poměrně rychle "spíchnout" program v Turbobasicu a rozhodl jsem se, že se s Vámi o něj podělím.

Program je uložen v souboru "HODINY.TBA". Po spuštění nejprve zadáme čas a dva budíky. Po stisku klávesy "Start" se zobrazí ciferník a hodiny se rozběhnou. V levém horním rohu je čas vyjádřený digitálně, v pravém horním naskakují sekundy a v každém dolním rohu je informace o jednom budíku. Pokud je budík zapnutý, jeho číslo je zobrazeno inverzně. Uprostřed obrazovky je ciferník s čísly a ručičkami. Hodinová a minutová ručička jsou bílé a sekundová je modrá. Budíky můžeme znovu nastavit po stisku klávesy "Select" (musíme trochu déle podržet). Když se má během chodu hodin ozvat některý z budíků, na obrazovce se objeví okno, které nám sděluje, který z budíků právě "zvoní". Zvukový signál se opakuje, dokud nepodržíme klávesu "Start", až okno zmizí.

Způsob zobrazování ručiček

Abychom zobrazili ručičku o délce R, musíme nejprve určit úhel U od dvanáctky k této ručičce. Pro minutovou ručičku se tento úhel rovná počtu minut násobenému 6 stupni (hodina má 60 minut, 360 stupňů / 60 minut = 6 stupňů na minutu). Po přepnutí na stupně příkazem "DEG" ručičku zobrazí příkazy:

U=6*M:PLOT X,Y:DRAWTO X+R*SIN(U), Y-R*COS(U) ,

kde X,Y jsou souřadnice středu ciferníku. Podobně se kreslí i sekundová ručička. Pro hodinovou ručičku je úhel U=30*H+0.5*M, protože za hodinu se otočí o 1/12 kruhu, což je 30 stupňů, ale během hodiny se pohybuje o půl stupně za minutu (za hodinu tedy o 30 stupňů). Jinak se zobrazuje podobně jako ostatní ručičky.

Pohyby ručiček po ciferníku

Program využívá volnou část paměti k uložení dvou obrázků. První je uložen od adresy 30720 a je na něm jen ciferník bez ručiček, který se každou minutu přenese na obrazovku a nakreslí se na něj minutová a hodinová ručička. Tento obrázek se uloží do paměti od adresy 34560, každou sekundu je přenesen na obrazovku a doplněn o sekundovou ručičku. Tímto způsobem se rychle odstraní ručičky z původních poloh a zobrazí se do nových, takže se nám jeví stálé a skoro vůbec neblikají.

Doufám, že s mým programem budete spokojeni, i když nejsem žádný hodinář, toto je moje první hodinářská práce (pokud nepočítám digitálky, to není nic složitého). Přeji Vám mnoho úspěchů při vydávání magazínu.

S pozdravem Váš odběratel

Filip Drsek