Specifikace softwarového projektu AlgoVize | |
---|---|
Název projektu: | Soubor nástrojů pro vizualizaci algoritmů |
Vedoucí: | Doc. Dr. Luděk Kučera, DrSc.
katedra aplikované matematiky ludek@kam.ms.mff.cuni.cz |
Účastníci projektu: |
Petr Nevařil (nevap0bm)
Jan Neuvirth (neuvj0am) Kamil Nezval (nezvk0am) Marek Mateják (matem0am) |
Popis projektu: |
Cílem projektu je vytvořit soubor nástrojů pro vizualizaci algoritmů. Studenti měli možnost seznámit se se systémem, pro který budou nástroje vytvářeny, v rámci prednášky DMI026 Algoritmy v 3. semestu oboru Informatika, kde jsou používány applety pro animaci a vizualizaci algoritmů. Cílem projektu není tvorba nových appletů nebo úpravy a modifikace appletů existujících, ale vytvoření nástrojů pro podporu jejich vytváření, jak se v průběhu let ozřejmila a ustálila potřeba standardních softwarových komponent. U většiny nástrojů se bude jednat o grafický objekt popsaný v jazyce Java, který je uživatelsky modifikovatelný (např. rozměry, volba a rozmístění ovládacích prvků jako jsou knoflíky, plátna, volitelná pole, implementované služby a interface apod.), který po konečné úpravě vzhledu a funkce grafického zobrazení automaticky vytvoří dokumentační soubory a současně kód v jazyce Java, který implementuje vytvořený objekt. Tímto způsobem se usnadní programování tak, aby jej mohli provádět i pedagogové s malou znalostí nebo bez znalosti programovacích jazyků i z jiných oborů než informatika. Konkrétně se jedná o moduly pro ovládací panel animace (se vzhledem a rozmístěním prvků měnícím se v průběhu animace), panel ukazující průběh výpočtu v pseudokódu pro daný algoritmus a univerzální zobrazovací pole pro 2D a 3D animace grafových algoritmů. Kromě toho je potřeba specializovaných modulů pro vizualizaci standardních matematických a informatických objektů (posloupnosti, stromy, kombinační a sekvenční obvody) s dostatečnou variabilitou. Program spadá do navrhovaného rozvojového programu MŠMT "Algovize". |
Platforma: | Projekt bude napsán v jazyku Java, což mu do určité míry zaručuje přenositelnost na různé platformy. |
Architektura: |
Object Manager Spravuje grafické objekty, které se zobrazují ve scéně. Rovněž ukládá a načítá projekt do/z XML souboru.
Grafický objekt (např. základní grafická primitiva v podobě kruhu, úsečky, polygonu,…). Kromě množství základních grafických objektů je uživateli poskytnut silný nástroj v podobě grafických konektorů, jimiž lze vytvářet složitější struktury.
Množina grafických objektů.
Základní kámen projektu. Všechny grafické objekty jsou složeny z několika vlastností (typicky vlastnosti označující pozici, barvu, jméno, …) Změna těchto vlastností pak přímo ovlivňuje vzhled a chování grafického objektu. Name Manager Přiděluje všem grafickým objektům unikátní jméno, uživatel toto jméno může měnit, popř. nastavovat defaultní. Selection Manager Spravuje uživatelem vybrané grafické objekty. Poskytuje tak prostředek přímé manipulace s grafickými objekty. Connector Manager Spravuje grafické konektory použité ve scéně.
Pomocí těchto grafických konektorů může uživatel vytvářet složitější grafické struktury, popř. mezi nimi vytvářet logické vztahy. Frame Manager Rozděluje scénu do klíčových snímků. Uživatel si v těchto klíčových okamžicích upravuje grafické objekty. Mezi snímky je pak automaticky vytvořen hladký přechod pomocí interpolátorů. AnimationManager Spravuje animační vlastnosti, jenž se dynamicky vytvářejí ve scéně. Pomocí těchto vlastností je vytvořena výsledná animace.
|
Historie změn: |
18.02.2005:
18.04.2005:
28.04.2005:
16.05.2005:
21.06.2005:
28.06.2005:
30.06.2005:
07.07.2005:
|