Týden 8 - 23. 11. 2020
Úkol 3 (5 bodů)
Výchozí informace:
https://en.m.wikipedia.org/wiki/Force-directed_graph_drawing
Zadání:
Implementujte v Processingu systém pro interaktivní zobrazování velkých grafů se zvětšeným náhledem na okolí uzlů ve středu obrazovky.
Požadavky:
1) Po spuštění programu se vygenuruje náhodný obecný graf s náhodným rozmístěním uzlů
1) Uzly lze přemísťovat myší
2) Po kliknutí na uzel se zobrazí (dočasně nebo do dalšího kliknutí) jeho identifikace
3) Uzly trvale optimalizují svoji polohu na základě Vámi zvoleného algoritmu, s preferenčním umístěním uzlů s větší vahou ve středu grafu
4) Uzly mají náhodně přidělené váhy, které ovlivňují jejich vzhled a vliv na okolité uzly
5) Zobrazení zahušťuje a zmenšuje uzly daleko od středu obrazovky (např. transformací r = R - k/(sqrt(x^2+y^2) + 1; alfa = arcsin(x/r)), kde x a y jsou karteziánské souřadnice, r a alfa jsou polární souřadnice po transformaci, které je nutné převést na transformované karteziánské xnew = sin(alfa)*r; ynew = cos(alfa)*r)
6) Automaticke rozlozeni grafu musi dovolovat pohyb do stran a nahoru dolu
Termín: 7.12.2020