Next: Životní cyklus programu
Up: Implementační poznatky
Previous: Vývojové prostředí
Editor afinních transformací jsem vyvíjel tak, že jsem nejprve navrhl
vizuální podobu oken a dialogů v programu. Potom jsem ke každému prvku
dopsal příslušný programový kód, který specifikoval chování prvku a jeho
reakci na požadavky uživatele. Pro většinu dialogových oken byl podpůrný
kód poměrně krátký (cca 500 řádků kódu).
V programu jsem s výhodou použil některé systémové dialogy. Jedná se
například o dialog pro výběr souboru pro čtení nebo zápis, nebo dialog
pro změnu barvy. Tyto dialogy jsou již zabudovány v systému Windows,
proto je jejich použití jednoduché a efektivní.
Složitější bylo navrhnout chování editačního okna. V tomto okně může
uživatel buď kreslit základní objekt, nebo provádět transformace na již
existující objekty. Bylo tedy nutno reagovat na pohyb myši a na stisk
jejich tlačítek.
Pro přehledné naprogramování jsem zvolil konečný automat. Stav konečného
automatu určoval operaci, kterou uživatel právě prováděl. Například pro
provedení transformace rotace jsou zapotřebí tři stavy:
- výběr objektu, který se má transformovat
- určení středu otáčení
- určení druhého bodu, který specifikuje velikost úhlu otočení
Také bylo třeba navrhnout vstupní a výstupní filtry pro komunikaci z
jinými programy. Zde jsem musel použít dokumentaci k těmto programům,
kde byla popsána syntaxe a sémantika jejich datových souborů. Někdy
nebyly tyto informace dostupné, nebo byly nepřesné. To se týká především
programu FractInt, který sice obsahuje velmi podrobnou a přesnou
dokumentaci o fraktálech, ale syntaxe jeho vstupních souborů není přesně
popsána a mění se s každou verzí programu.
Next: Životní cyklus programu
Up: Implementační poznatky
Previous: Vývojové prostředí
Tisnovsky Pavel
1999-05-30