Logo MKVNK
<< Späť

Zadania programovacích a modelovacích projektov

Pokyny a pravidlá odovzdávania

Všetky vypracovania odovzdávate výhradne do zdieľaného priečinku, ku ktorému máte jedinečný prístup cez univerzitné konto (dostanete upozornenie na email).

Termín odovzdania zadaní je 7. jún 2026.

Vyberáte si a odovzdávate 3 zadania (dokopy za 30 bodov) podľa vašej preferencie a tie budú hodnotené. V prípade, že odovzdáte viac zadaní, do hodnotenia sa zarátajú len prvé 3 s najhoršími výsledkami.

K programovacím zadaniam:

K modelovacím zadaniam:

Programovacie zadania

P1 - Vnútro a vonkajšok mnohouholníka (10 bodov)

VSTUP: Používateľ zadá klikaním myši do okna \( n \) bodov \( V_1, ..., V_n \in \mathbb{R}^2 \). Tieto body tvoria vrcholy \( n \)-uholníka \( \mathcal{P} \) (v zadanom poradí), pričom môžete predpokladať, že používateľ zadá iba jednoduchý \( n \)-uholník (nemusíte teda ošetrovať diery a samoprieseky).

VÝSTUP: Po stlačení klávesy "Enter" alebo kliknutím na tlačidlo sa vygeneruje \( m \) bodov \( P_1, ..., P_m \in \mathbb{R}^2 \) s náhodnými súradnicami tak, aby všetky boli viditeľné v okne, pričom:

Korektnosť vypracovania bude posudzovaná na základe správneho rozhodovania parity bodov a výkonu pre rôzny typy mnohouholníkom v zmysle počtu reflexných vrcholov a celkového počtu vrcholov. Odporúča sa testovať korektnosť aplikácie pre čo najväčšie \( n \) (napr. \( n > 25 \) ).

ĎALŠIA FUNKCIONALITA: Obrazovku a všetky údaje je možné zmazať stlačením tlačidla "Zmazať" a následne zadávať \( n \)-uholník odznovu.

P2 - Hypocykloidy a epicykloidy (10 bodov)

Hypocykloida/epicykloida je krivka, ktorá vznikne pohybom bodu po kružnici \( \mathcal{K}_1 \) s polomerom \( r \geq 0 \), ktorá sa valí (bez kĺzania) po kružnici \( \mathcal{K}_2 \) s polomerom \( R = kr, k > 0 \) z vnútornej/vonkajšej strany:

Hypocykloida pre \( k = 4 \)

Epicykloida pre \( k = 3 \)

Všimnime si, že pre celočíselné hodnoty nám parameter \( k \) určuje počet cípov/lístkov hypocykloidy/epicykloidy.

VSTUP: Používateľ zadáva hodnotu \( k \) ako textový vstup a je možné zadávať aj desatinné čísla. Následne je možné vyberať medzi hypocykloidou a epicykloidou pomocou ToggleButton, prípadne stlačením dvoch rôznych tlačidiel/kláves.

VÝSTUP:Po stlačení tlačidla sa spustí animácia vykreslenia cykloidy (analogicky, ako je v uvedených linkoch) nasledovným spôsobom:

ĎALŠIA FUNKCIONALITA: Obrazovku a všetky údaje je možné zmazať a následne spustiť s aktuálnymi parametrami stlačením tlačidla "Reštartovať".

P3 - Triangulácie sedemuholníka (10 bodov)

VSTUP: Používateľ zadá klikaním myši do okna 7 bodov \( V_1, ..., V_7 \in \mathbb{R}^2 \). Tieto body tvoria vrcholy sedemuholníka \( \mathcal{S} \) (v zadanom poradí), pričom môžete predpokladať, že používateľ zadá iba jednoduchý sedemuholník (nemusíte teda ošetrovať diery a samoprieseky).

VÝSTUP: Po stlačení klávesy "Enter" alebo kliknutím na tlačidlo sa do okna vykreslia všetky triangulácie sedemuholníka \( \mathcal{S} \) nasledovným spôsobom:

Korektnosť vypracovania bude posudzovaná na základe správneho rozhodovania, ktoré dvojice vrcholov tvoria diagonálu a ktoré nie.

ĎALŠIA FUNKCIONALITA: Obrazovku a všetky údaje je možné zmazať stlačením tlačidla "Zmazať" a následne zadávať sedemuholník odznovu.

P4 - Priemet kocky (10 bodov)

VSTUP: Používateľ zadáva súradnice bodu \( P \in \mathbb{R}^3 \) a súradnice dvoch lineárne nezávislých vektorov \( \vec{u}, \vec{v} \in \mathcal{V}(\mathbb{R}^3) \) ako textové vstupy. Rovnakým spôsobom možno zadať stred premietania \( C \in \mathbb{R}^3 \) a smer premietania \( \vec{d} \in \mathcal{V}(\mathbb{R}^3) \). Používateľovi je umožnené vybrať medzi stredovým a rovnobežným premietaním pomocou ToggleButton, prípadne stlačením dvoch rôznych tlačidiel/kláves.

VÝSTUP: Po stlačení klávesy alebo kliknutím na tlačidlo sa do okna \( \mathcal{W} \) vykreslí priemet jednotkovej kocky \( [0,1] \times [0,1] \times [0,1] \subset \mathbb{R}^3 \) do roviny \( \rho \) zadanej bodom \( P \) a vektormi \( \vec{u}, \vec{v} \) vo vybranom type premietania, pričom:

ĎALŠIA FUNKCIONALITA: Kocku je možné posúvať v smere osí \( x, y, z \) v kladnom a zápornom smere stlačením vhodne zvolených kláves, pričom po každom stlačení sa priemet prekreslí.

P5 - Štvorbodová rafinačná schéma (10 bodov)

VSTUP: Používateľ zadáva vrcholy uzavrejtej lomenej čiary (mnohouholníka) \( P_0, ..., P_n \in \mathbb{R}^2 \), počet iterácií \( k = 0, ..., 5 \) a parameter \( \omega \in [0, 1] \), ktorý je navzorkovaný na \( 16 \) dielikov, t. j. je možné zadávať hodnoty \( \frac{0}{16}, \frac{1}{16}, ..., \frac{1}{16} \). Vrcholy a hrany lomenej čiary sú počas celého behu aplikácie zrozumiteľné znázornené.

VÝSTUP: Po stlačení klávesy "Enter" alebo kliknutím na tlačidlo sa do okna vykreslí rafinačná krivka pomocou štvorbodovej schémy so zadaným počtom iterácií \( k \) a parametrom \( \omega \).

ĎALŠIA FUNKCIONALITA:Po kliknutí na vrchol a následnom ťahaní sa rafinačná krivka automaticky prekreslí. Prekresľovanie prebieha už počas ťahania myši, nie až po uvoľnení jej tlačidla.

Modelovacie zadanie (10 bodov)