Tento článek popisuje práci s programem Metamo , který umožňuje provádět plynulý přechod mezi dvěma obrazy.
Práce s programem je velice jednoduchá. Nejprve si musíme zvolit velikost pro výchozí a koncový blok (zadává se pouze jedna šířka a výška, která platí pro oba bloky a také pro všechny fáze mezi nimi). Následuje otázka smazání obrazovky - ta je zde implementována z důvodu zachování kreseb při opětovném spouštění programu. Na obrazovce se ohraničí dvě části. Tyto jsou určené pro výchozí a koncovou fázi. Tyto fáze do vyznačených částí namalujeme (pomocí joysticku, fire tlačítka a kláves 1,2,3 a 0 - které určují aktuální barvu). Upozorňuji předem, že grafický editor je na velice nízké úrovni (Program má sloužit pro výpočet metamorfózy - ne pro malování). Nabízí se možnost použít nějaký jiný gr. editor a grafická data importovat (klávesa I) do videopaměti programem použitého módu - t.j. grafický mód 7 (4 barvy).
Při kresbě výchozího a koncového obrazce dbejte prosím následujících zásad: - používejte pouze obrysy! (výpočet vyplněných ploch by trval mnohem déle a výsledek by nestál za to - jednotlivé plochy by se přes sebe překrývaly a vznikl by jen nepoužitelný chaos) - každá barva (1,2,3), která je použita v jednom obrazci musí být obsažena i v obrazci druhém. Počet bodů dané barvy nemusí být shodný, ale je vhodné, pokud jsou tyto počty alespoň podobné (Program totiž transformuje body odpovídajících barev na sebe). Nedodržení této podmínky program detekuje a nepovolí provést metamorfózu.
Jste-li s kreslením hotovi, stiskněte klávesu M (metamorfóza). Program se vás zeptá na počet animačních fází - Tím je myšleno, kolik obrázků mezi výchozím a koncovým má vygenerovat (přitom se započítává výchozí blok jako fáze číslo 0 a zadaná hodnota je číslo, pod kterým bude blok koncový). Tento parametr rozhoduje o plynulosti přeměny. Doporučuji zadávat hodnotu 7 nebo 15 (skutečný počet všech fází je o 1 větší). Nyní trpělivost - program bude provádět výpočet. Vy si zatím zajděte na svačinku apod., neboť podle toho, jak složité obrázky jste nakreslili, může výpočet trvat i několik čtvrthodin (resp. i půlhodin!). Až bude výpočet ukončen - program začne vydávat zvuk, který by Vás měl přivolat (pokud nemáte staženou hlasitost nebo vypnutý televizor). Po odklepnutí Vám bude periodicky předvádět přechod z výchozího obrazu na koncový a zpět (rychlost přechodu můžete ovlivňovat klávesami 0 až 9). Po zastavení demonstrace (libovolná jiná klávesa) je možné si všechny fáze přechodu uložit na médium. Toto má však význam pouze pro zkušenější, kteří budou moci tato grafická data použít např. ve svých programech. Po nabídce uložení se program opět zeptá na počet fází. Pokud chceme provést výpočet téže přeměny - pouze s jiným počtem fází, zadáme nyní tento počet. Výpočet, který bude proveden nyní bude značně kratší než v prvním případě (po stlačení klávesy M z kreslícího režimu), neboť se využívá již zjištěných hodnot z předešlého výpočtu). Pokud o to nemáte zájem, odešlete prázdný řádek a vrátíte se do kreslícího režimu.
Vznikne-li při běhu programu jakýkoli problém, program ho oznámí i s jeho popisem.
Formát výstupních dat je jednoduchý: Soubor obsahuje jednotlivé animační pozice jednu za druhou. Přitom každá fáze je uložena ve formátu dat pro videopaměť:
př. Formát bloku 3 byte x 24 bodů:
Byte 0: 0.-tý až 3. bod nultého řádku Byte 1: 4. až 7. bod nultého řádku Byte 2: 8. až 11. bod nultého řádku Byte 3: 0.-tý až 3. bod prvního řádku ... Byte 70: 4. až 7. bod 23. řádku Byte 71: 8. až 11. bod 23. řádku
Každá animační pozice má tedy v tomto případě celkem 72 byte. Po vynásobení skutečným počtem fází dostaneme délku souboru.
I když je program napsán v TBasicu (nebo snad právě proto), doba výpočtu je neúnosná. Možná vyrobím další verzi programu, která bude mít pro tyto výpočty strojové podprogramy. Algoritmus metamorfózy by se dal také ještě vylepšit, ale nevím, zda by to mělo nějaký význam.